Извлечение одного href per относительно просто, при условии, что они соответствуют стандартам XHTML, а в строке есть не более одного, и вам не нужно включать теги, но perl проще:
$ perl -ne 'print "$1\n" if /href="([^"]+)"/'
Если вы заботитесь о вложенных тегах или они не соответствуют стандарту, вы не можете использовать регулярные выражения для анализа HTML. Это невозможно.
добавлено: упс, вы заботитесь о контексте, забыли о регулярных выражениях и используете настоящий HTML-парсер