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.