Or, you could specify that the parentheses are non-capturing parenthesis, buy using the ?: notation, like this:
/a href=(?:\"|')([a-zA-Z0-9?&=.]+)(?:\"|')/i
Though Weedpacket's idea would possibly be better, as it will be eaiser to read:
/a href=\"'[\"'])/i
You also forgot some valid characters for a URI, if that is important...