(? #### The start of a named capturing block (also $1) .* #### Match any character (except newline), zero-or-more times (as many possible) ) #### The end of the named capturing block (?{ push(@::rc1, ${^MATCH}) }) #### Execute a block of code \K #### Pretend the final match starts here (?{ $::p_rootcode = "@::rc1" }) #### Execute a block of code (? #### The start of a named capturing block (also $2) [0-9] #### Match any of the listed characters ) #### The end of the named capturing block (?{ push(@::rc2, ${^MATCH}) }) #### Execute a block of code \K #### Pretend the final match starts here (? #### The start of a named capturing block (also $3) [A-Z] #### Match any of the listed characters ) #### The end of the named capturing block (?{ push(@::rc3, ${^MATCH}) }) #### Execute a block of code $ #### Match only if at end of string (or final newline)