$ perl -Mre=debug -le " q/yabba dabba doo/ =~ /y(.)(.)\2\1/ " Compiling REx "y(.)(.)\2\1" Final program: 1: EXACT (3) 3: OPEN1 (5) 5: REG_ANY (6) 6: CLOSE1 (8) 8: OPEN2 (10) 10: REG_ANY (11) 11: CLOSE2 (13) 13: REF2 (15) 15: REF1 (17) 17: END (0) anchored "y" at 0 (checking anchored) minlen 3 Guessing start of match in sv for REx "y(.)(.)\2\1" against "yabba dabba doo" Found anchored substr "y" at offset 0... Guessed: match at offset 0 Matching REx "y(.)(.)\2\1" against "yabba dabba doo" 0 <> | 1:EXACT (3) 1 | 3:OPEN1(5) 1 | 5:REG_ANY(6) 2 | 6:CLOSE1(8) 2 | 8:OPEN2(10) 2 | 10:REG_ANY(11) 3 | 11:CLOSE2(13) 3 | 13:REF2(15) 4 | 15:REF1(17) 5 < dabba doo> | 17:END(0) Match successful! Freeing REx: "y(.)(.)\2\1"