Если вы все еще настаиваете на использовании регулярных выражений для решения этой проблемы, вы можете проанализировать некоторые из них с помощью следующего регулярного выражения:
<a.*?href="(.*?)".*?>(.*?)</a>
Обратите внимание, что он не использует модификатор U, как ваш.
Обновление: Чтобы он мог принимать одинарные кавычки, а также двойные кавычки, вместо этого можно использовать следующий шаблон:
<a.*?href=(?:"(.*?)"|'(.*?)').*?>(.*?)</a>