$re = '/\bx\.set\((?:\s*(?:,\s*)?(?<o>[-+]?\d*\.?\d+(?:[Ee][-+]?\d+)?|\w+(?<a>\((?:[^()]++|(?&a))*\))*|\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'|"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"))*\s*\)/m';
$str = 'ver = \'1.0\'
if x.set(\'1.2\'):
p = x.set(\'python_version\', None)
x = x.set(\'test_template\', DEFAULT, p(x,b),
z())';
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