Another topic of manipulating the flow of a regex is assertions. During the match process, the pattern consumes characters of the source strings. Assertions help to make some checks at the current position without eating characters.
There are two types of assertions in Perl 6 regexes—lookahead and lookbehind. Each of them can be negated. In the following table, all the possible combinations are listed:
Positive assertion | Negative assertion | |
Lookahead | <?before X> | <!before X> |
Lookbehind | <?after X> | <!after X> |
Being placed inside a regex, the lookahead assertion <?before X> checks whether at this position the following characters are X. If it is so, then the assertion succeeds and the regex engine continues its work. Other assertions behave following the same logical considerations, for example...