od kilku godzin męczę się z prostym wyrażeniem preg_replace i już zaczynam chodzić po suficie, bo nie wiem jak to zrobić

Pobieram z bazy rekordy ze znacznikami html, które zamieniam za pośrednictwem funkcji htmlspecialchars na odpowiednie "zamienniki".
Przepuszczam jedynie znaczniki b, u, i oraz linki (a href). I to właśnie z linkami mam problem ;/
Jeżeli w jednym rekordzie z bazy pojawią się dwa linki, to funkcja preg_replace łączy je w jeden.
Takie zdanie:
Polecamy <a href="http://www.onet.pl" target="_blank">Portal onet.pl</a> oraz <a href="http://www.wp.pl" target="_blank">Portal wp.pl</a>
Zostanie zamienione przy zastosowaniu kodu:
$str = preg_replace('/\<a([^<>]*)href=\"([^<>]*)\"([^<>]*)\>([^<>]*)\<\/a\>/', '<a$1href="$2"$3>$4</a>', $str);
na:
Liczę na Waszą pomoc
