- var_dump: documentation ( source)
- preg_match_all: documentation ( source)
<?php
$pattern="/\(((?>[^()]+)|(?R))*\)/";
$str = <<< LOL
(def a
(x) (+ 1 x))
(print (a 1))
(((((((((((((((((
)))))))))))))))))
LOL;
preg_match_all($pattern,$str,$out);
var_dump($out[0]);