I am trying to write a regexp which matches nested parentheses, e.g.:
\"(((text(text))))(text()()text)(casual(characters(#$%^^&^%#@!&**^*
When I found this answer I wasn't able to figure out how to modify the pattern to work with my own delimiters which where {
and }
. So my approach was to make it more generic.
$delimiter_wrap = '~';
$delimiter_left = '{';/* put YOUR left delimiter here. */
$delimiter_right = '}';/* put YOUR right delimiter here. */
$delimiter_left = preg_quote( $delimiter_left, $delimiter_wrap );
$delimiter_right = preg_quote( $delimiter_right, $delimiter_wrap );
$pattern = $delimiter_wrap . $delimiter_left
. '((?:[^' . $delimiter_left . $delimiter_right . ']++|(?R))*)'
. $delimiter_right . $delimiter_wrap;
/* Now you can use the generated pattern. */
preg_match_all( $pattern, $subject, $matches );