Il faut que tu ajoutes un ? pour que la recherche de motif s'arrete à la premiere occurence de ". Comme ca donc:

/&#40;.*&#41;<\s*a&#40;.*&#41;href\s*=\s*"&#40;.*?&#41;"&#40;.*&#41;>&#40;.*&#41;/
avec ca, $3 devrait bien valoir...