$re = '/(?m)^if.*\R+(?:^[\t ]+.*\R+)*?^[\t ]+test\.check\(\).*\R?/';
$str = 'if global_var:
fizz()
test.buzz()
test.check()
bang()
bop()
would match but not any of the following
fizz()
test.buzz()
test.check()
bang()
bop()
if global_var:
fizz()
test.buzz()
bang()
bop()
';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php