Whew! I've carefully (well, I tried to be careful :-) read through Apocalypse 5 twice now and it still makes my head hurt (but in a good way). What follows is some notes that I jotted down and am tired of looking at. Please correct any misconceptions and feel free to add where I've omitted.
Here's a quick table of the built-in modifiers that I saw and/or surmised. Are there any others? (entries with ? are guesses or unknown on my part) long form short form meaning :any :a match returns a list of anywhere the pattern matches within the string regarless of overlap. :each :e Apply the pattern each time we can within the string? Is this what happened to perl5's /g modifier? :once :o Match succeeds exactly once (unless .reset) :words :w Perform a "word match" treating whitespace between patterns as if it were \s+ :cont :c Continue from where the last match left off :ignorecase :i Match alphabetics case insensitively :perl5? :p5 Match using perl 5 rules :unicode0? :u0 dot matches bytes :unicode1? :u1 dot matches code points :unicode2? :u2 dot matches graphemes :unicode3? :u3 what dot matches is language dependent :? :1st succeed on the first match :? :2nd succeed on the second match :? :3rd succeed on the third match :? :4th succeed on the fourth match This pattern continues for positive integers (i.e. :53rd succeeds on the fifty-third match) It'd be simpler IMHO, if instead of the "st", "nd", "rd", and "th" suffixes it were an "n" suffix. e.g., :53n would succeed on the fifty-third match. :1time? :1x match exactly one time :2times? :2x match two times :3times? :3x match three times This pattern continues for all positive integers (i.e. :23x matches 23 times) Is the "x" necessary? In a later example s:3/// is used to perform the s/// 3 times. Can I use 0 in the above? Will :0 never match? Is there a way to interpolate the number? Does :$number work? The text says: A modifier that starts with a number causes the pattern to match that many times. It may only be used outside the regex. Why only outside the RE? Why wouldn't /:3x foo/ be synonymous with /foo<3>/? And here's a table of built-in assertions; are there any others? assertion meaning <alpha> matches any alphabetic character <digit> matches any numeric character <sp> matches a space character <prior> match whatever the most recently successful match did <null> match nothing <commit> fails the match if backtracked to <cut> fails the match if backtracked to and removes the portion of the string that matched to that point <before ...> match if the pattern occurs before ... <after ...> match if the pattern occurs after ... The example at the top of Backslash Reform ... $oldpos = pos $string; $string =~ m/... <( .pos == $oldpos )> .../; Shouldn't that first line should be something like $oldpos = $matchobj.pos; # or ... $oldpos = pos $matchobj; # or just ... $oldpos = pos; # uses the most recently seen # match object ? End of random ramblings ... -Scott -- Jonathan Scott Duff [EMAIL PROTECTED]