Aber es geht meines Erachtens nach noch besser, wenn du Callbacks verwendest, denn Code sollte Code bleiben. Wenn du ihn in eienn String packst ist er schlecht wartbar. Für jede Ergänzung, für die du Code brauchst, erstellst du eine Callback-Funktion (bei der du die Hinweise zu preg_replace_callback() beachtest). $html_search_for und $html_replace_with wird wie bisher behandelt und zusätzlich erstellst du es $callback_search_for, $callback_replace_with (mit dem Namen der Funktion) und lässt es mit preg_replace_callback() bearbeiten.
Abgeänderte Funktion ist dann:
[..]
$code_search_for[] = '/\[news\/(.*)\/\]/iU';
$code_replace_with[] = 'include("_db_sub_connect.php");$newsquery = mysql_query("SELECT DATE_FORMAT(Datum, \"%e.%c.%y\") as Datum_tit, Inhalt, Titel, ID, Links, Subtitel, Kategorie, Pic_thumb, Pic, Pictext, Quelle, c FROM news WHERE ID=\"\1\"");include("_news_anzeigen.php");';
echo preg_replace($search_for, $replace_with, preg_replace_callback($code_search_for, $code_replace_with, $content));
Nun gibt er einfach [news/29/] aus, was er eigentlich ersetzen sollte..