Я могу ошибаться, но я думаю, что вам просто нужно изменить квантификатор в группе href
, чтобы он был ленивым, а не жадным.
string pattern = @"<a\s+href\s*=\s*""(?<href>.*?)"">\s*</a>";
(Я также изменил тип строкового литерала, чтобы использовать @, для лучшей читаемости.)
Остальная часть регулярного выражения кажется прекрасной для меня. То, что вы вообще не захватываете совпадения, заставляет меня думать иначе, но может быть проблема в остальной части кода (или даже во входных данных - вы проверяли это?).