Per quello che devi fare non occorre utilizzare le espressioni regolari (e cmq meglio usare le preg_* invece delle ereg*, sono pių potenti e veloci).
Prova una cosa del genere:
Codice PHP:
$find=array(
     
'${nom}$'
    
,'${cog}$'
    
);
$replace=array(
     
'tizio caio'
    
,'sempronio'
    
);


$testo 'irw eroih oiwrhe oihwre ${nom}$ oihr oiehw oihe ${cog}$ ${nom';

echo 
$testo."
\n\n"
;

echo 
str_replace$find,$replace,$testo )."
\n\n"