$re = '/^(?:(?:[-\w\d?*.+|{}\\\\\/\s<>\]])|(?:\\\\[\[\]()])|^[\[(].+?[\])])+\s*(#+.*)$/m';
$str = '(\\h{8}-\\h{4}-\\h{4}-\\h{4}-\\h{12}) # match UUID (no square brackets at all)
([A-Za-z_][A-Za-z0-9_]*) # valid Python identifier (paired unescaped square brackets)
(\\||\\[|\\?) # match some stuff (escaped opening square bracket)
[A-Za-z # letters
0-9_-.] ### stuff
(\\[ # works if escaped [ is in group
\\[ # and on its own...
if | pass | raise | return | try | while | with # this should be a comment
\\h # a hex digit';
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