m{ (?

# The start of a named capturing block (also $1) (?&V) # Match a call to the subpattern named ) # The end of the named capturing block (? # The start of a named capturing block (also $2) . # Match any character (except newline) ) # The end of the named capturing block (?(DEFINE) # The start of a definition block (skipped during matching) (? # The start of a named capturing block (also $3) . # Match any character (except newline) . # Match any character (except newline) . # Match any character (except newline) ) # The end of the named capturing block ) # The end of definition block }x