- var_dump: documentation ( source)
- preg_match: documentation ( source)
<?php
//$p = '~(?J)(z?)((?1)(?P<group>b)|(?P<group>a))ba~'; // works
$p = '~(?J)(z?)((?1)(?P<group>b)|(?P<group>a))b(?P=group)~'; // fails
$s = 'aba';
if (preg_match($p, $s, $m)) {
var_dump($m);
}