Lieber steffi,
Nein, hier schaltet das Fragezeichen den * auf "ungierig".
ja, eben dieses wollte ich bezwecken.
doch nun wird alles ab dem ersten < ersetzt hin zu dem ersten > nach dem vorgekommenen <mist>.
das .*? soll nicht verschwinden...
AHA! Dann musst Du Klammern nehmen und mit Backreferences arbeiten.
$text = preg_replace("/<(.*?)(<mist>)(.*?)>/", "\\1$zu_ersetzen\\3", $text);
Liebe Grüße aus Ellwangen,
Felix Riesterer.