<?php
$raw_html = "<a href=\"go.php&id=311&url=http://www.foo.com\" target=\"_blank\" title=\"Homepage\">";
preg_match_all( "/<a .*?http:\/\/(.*?)\" target=\"_blank\" title=\"Homepage\">/" , $raw_html , $result );
print_r($result);
?>
i tested that, no changes to your code at all. and this was the result
Array
(
[0] => Array
(
[0] => <a href="go.php&id=311&url=http://www.foo.com" target="_blank" title="Homepage">
)
[1] => Array
(
[0] => www.foo.com
)
)
so it seems to match fine, at least in the code you posted.