$re = '/\(= \(\[interpret\] \s*\(query \(\[i_query\] \(\(name\)([\s\S]*)\)/m';
$str = '(= ([interpret]
(query ([i_query] ((name)
(argument ((name item1) (eval (.Eval 0)) (.Span 0) (.Category $item12)))
(argument ((name item2) (eval (.Eval 1)) (.Span 1) (.Category $item24))))))))';
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