$re = '/^myfunc\.call\({(?:\r?\n(?!\s*(?:"logging"|myfunc\.call)).*)*\r?\n.*"logging"\s*:\s*(true|false)/m';
$str = 'myfunc.call({
"logging" : true
});
myfunc.call({
"logging" : true,
//"mode": true,
}, "project1");
myfunc.call({
"devMode": true,
"logging" : false,
}, "project1");
myfunc.call({
"apiKey": "xxx",
"baseURL": "HTTP://xxx", // url used when not in dev mode
"mode": false, // mode
"logging": true, // logs events
}, "project1");
myfunc.call({
"apiKey": "xxx"
}, "project1");
myfunc.call({
"apiKey": "xxx",
"baseURL": "HTTP://xxx", // url used when not in dev mode
"mode": false, // mode
"logging": true, // logs events
}, "project1");';
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