Вам необходимо отделить свою группу захвата от следующего .*?
. Вероятно, двойные кавычки "
вокруг href, так что используйте их:
<\s*a\s+.*?href\s*=\s*"(\S*?)".*?>
Ваше регулярное выражение содержит:
([^\s]*?).*?
([^\s]*?)
говорит, что неохотно находит все непробельные символы и сохраняет их в группе. Но нежелательный *?
зависит от следующей части, которая является .
; любой персонаж. Таким образом, сопоставление href прерывается при первой возможности, и это .*?
, который соответствует остальной части URL.