$str = ' Main ... '; $rex = '!Main[^{}]*\{([^{}]*|(?:[^{}]*\{[^{}]*\}[^{}]*)*)\}!si'; while (preg_match($rex, $str, $m)) { // do whatever ... $str = str_replace($m[0], "", $str); }