Try:
href="(?<Link>((?!"|product).)*product.*?)"
with the 'ignore case' option set.
What this does is to replace the '.*?' with '((?!"|product).)*' which is a specific test for 2 conditions: either the double-quote character (which means the attribute value does NOT contain the character sequence "product") or the "product" sequence.
The part requires a match with the "product" characters and so will reject any match that is with a value that does not contain this sequence. As there is a single criteria for ending the attribute value (the next double-quote), the '.*?' can be used to complete the match.
By the way, can you please read the posting guidelines in the sticky note at the beginning of this forum and provide as much of the requested information as possible. While the pattern I have suggested should work on most regex variants, I can't be certain about whatever one you are using as I don't know what it is!
Susan