September 2017
Beginner
402 pages
9h 52m
English
This adverb disables backtracking in regexes. In the Greediness section, we have seen how the regex engine rolls back after a greedy quantifier consumed too many characters to make another attempt with fewer characters. The :r adverb does not let it happen. It explains the name :ratchet—it only goes forward.
For example, in the next example, the regex is created to find all numbers that end with zero:
for 1..100 { .say if / \d+ 0 /;}
This code prints round numbers 10, 20, and so on. With :r, nothing will be printed because \d+ consumes all the digits from a number and :r did not leave the space for matching with 0.