$x = <<<'foo'
(class|trait)[\s]+([\S]+)[\s]*[\s]+{)(?P
[\s\S]+)?(?P[\s]+})#i', function($r)
{
$r['body'] = preg_replace_callback('#(?Puse[\s]+([\S]+)[\s]*[\s]+{)(?P[\s\S]+)?(?P[\s]+})#i', function($r)
{
$r['body'] = preg_replace_callback('#(?P([\s]+[\S]+)[\s]+as(?:[\s]+(public|protected|private))?)(?P[\s]+([\S]+));#i', function($r)
{
return $r['method'].' function '.$r['alias'].'(){}';
}, $r['body']);
return $r['open'].$r['body'].$r['close'];
}, $r['body']);
return $r['open'].$r['body'].$r['close'];
}, $x);
print $x;
/*