sub { /\G (?: ... (?{ code1(...); }) # pattern 1, handler for pattern 1 | ... (?{ code2(...); }) # pattern 2, handler for pattern 2 | ... (?{ code3(...); }) # and so on )/gcx; }