ho risolto in parte.
la regexprende solo il primo frammento [0] => 'o' 'a' cioè (preso da car{{o}{a}})codice:$regex='#\\{{.+?\\}{.+?\\}}#s';
ma non considera spazi cioè non prende{ {o} {a} }
come posso mettere la condizione per far accettare gli spazi dentro le graffe?