Bueno! pude hacer que funcione, les paso el codigo por si alguno le interesa o si pueden sugerir alguna mejora, lo veo bastante rebuscado pero bueno, si alguien cree que se lo puede mejorar se los agradecere
Código PHP:
<?
$string = "{titulo1}[op1][op2][op3]{titulo2}[op1t2][op2t2][op3t2]{titulo3}[op][o][op3t3]{titulo4}[op]";
preg_match_all("<\{(\w+)\}|\[(\w+)\]>", $string, $matchs);
//$array1= $matchs[0];
$array2= array_filter($matchs[1]);
$array3= $matchs[2];
$i=1;
foreach($array2 as $v) {
echo $v."</br>";
while ($array3[$i]!="") {
echo $array3[$i]."</br>";
$i++;
}
$i++;
}
resultado:
titulo1
op1
op2
op3
titulo2
op1t2
op2t2
op3t2
titulo3
op
o
op3t3
titulo4
op