Peut être une soluce : tu entres utilises deux tableaux, un pour les motifs à remplacer, l'autre pour leur correspondance.
$pattern = array ('/"/','/{\n *<(.+?)([\r\n]+?)}/i';
$replace = array ('\"','document.write(\"<$1
\';
preg_replace($pattern,$replace,$jscache0j);
La regex doit commencer par remplacer les " par \" puis elles s'occupe des balises...
A toi d'adapter (corriger) ce bout de script... Je pense que cela devrait marcher.