http://www.perlmonks.org?node_id=177306

Back when I wrote perlretut , code expressions (?{code}) and (??{code}) were relatively new beasts in the regex menagerie. I thought they were clever and the variable backtracking was a little bit magical.

The trouble was, I couldn't come up with any examples where code expressions really nailed the problem. So for the tutorial I created a cute, but useless, example of matching Fibonacci strings:
# detects if a binary string 1101010010001... # has a Fibonacci spacing 0,1,1,2,3,5,... of the 1's $x = "1101010010001000001"; $s0 = 0; $s1 = 1; # initial conditions print "It is a Fibonacci sequence\n" if $x =~ /^1 # match an initial '1' ( (??{'0' x $s0}) # match $s0 of '0' 1 # and then a '1' (?{ $largest = $s0; # largest seq so far $s2 = $s1 + $s0; # compute next term $s0 = $s1; # in Fibonacci sequence $s1 = $s2; }) )+ # repeat as needed $ # that is all there is /x; print "Largest sequence matched was $largest\n";
This prints
It is a Fibonacci sequence Largest sequence matched was 5

Since then, I have written many regexes, but haven't come across any code that needed code expressions, as opposed to a combination of simpler regexes and perl code.

My question is: Has anyone found a good use for code expressions in their regex work?

-Mark