3v4l.org

run code in 300+ PHP versions simultaneously
<?php $text = 'This {is {{Par}m1}} plus {{Par{m3a{{Parm3b}}}} a}nd {{Parm4a||{{Par}m4b||{{Parm4c||{{Parm4d||Parm}}}}}}}}.'; $res = preg_split('~({{(?:(?!{{|}}).|(?1))*}})~', $text, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); print_r($res);

preferences:
28.16 ms | 405 KiB | 5 Q