Lieber Reto,
und nun passiert nichts (kein <p> wird mit dem Link erweitert)
wenn Zeilenumbrüche enthalten sind, muss das Suchmuster noch ein (?s)
enthalten:
$insert = '<a>Link</a>';
$html = preg_replace(
'~(?s)(.*?<p>.*?)(<p)~',
'$1'.$insert.'$2',
"<div>\r\n\t<p>Trallala</p>\r\n\t<p>Fidirallalla</p>\r\n</div>"
);
/* $html = <div>
<p>Trallala</p>
<a>Link</a><p>Fidirallalla</p>
</div>
*/
Liebe Grüße,
Felix Riesterer.