Prova cosi. Si puo' fare di meglio penso.
Codice PHP:
<?php
$testo 
"ciao car{{o}{a}}  anonimo questo è un messaggio scritto da Pin{ {o} {a} } altro testo...non deve prendere {{o} txt {a}} car{{b}{r}}o";
$regex "/\{\s*\{([^}]?)\}\s*\{([^}]?)\}\s*\}/";
preg_match_all($regex,$testo,$campi); 

print_r$campi);
Torna.
l'array [1] contiene le parti sinistre mentre il [2] le destre.
codice HTML:
Array(    
    [0] => Array        (            [0] => {{o}{a}}            [1] => { {o} {a} }            [2] => {{b}{r}}        )
    [1] => Array        (            [0] => o            [1] => o            [2] => b        )
    [2] => Array        (            [0] => a            [1] => a            [2] => r        )
)