Вы должны заключить нужный фрагмент текста в скобки, например (.*)
, то есть то, что будет возвращено
Этот работает для меня
<?php
preg_match_all('/<link type="text\/html" rel="alternate" href="(.*)"\/>/','<link type="text/html" rel="alternate" href="http://link"/>',$patterns2);
print_r($patterns2);
?>