Per iniziare, per l'esempio che hai postato è inutile utilizzare preg_replace(), ma è sufficiente utilizzare str_replace().

Poi, le PCRE richiedono dei delimitatori non alfabetici. Nel tuo caso, vengono interpretati i {}. Inoltre {} sono meta caratteri in PCRE per cui sarebbe opportuno NON utilizzarli come delimitatori.

Codice PHP:
<?php 
$text 
"
<h1>Il titolo e': {text}</h>\n


{hello}</p>
"
;

$text preg_replace("#\\{text\\}#""Ciao mondo"$text);
$text preg_replace("#\\{hello\\}#""hello world"$text);
echo 
$text;

?>