"04abcdefgh" =~ / (\d\d) (?> (?{ $^N }) # initialize $^R to $1 ( . (?(?{ --$^R }) (?-1)) # recurse if --$^R > 0 ) ) /x; dd $&; #-> "04abcd"