These match:
# (not using 'say' because I wanted to try it on old perl versions) perl -e 'printf "%s\n", "ab\nab\n" =~ /^ab$ab$/m' perl -e 'printf "%s\n", "ab\nab\n" =~ /^(ab$ab$)/m' perl -e 'printf "%s\n", "ab\nab\n" =~ /^(ab$ab)$/m' perl -e 'printf "%s\n", "ab\nab\n" =~ /^(ab)$ab$/m' perl -e 'printf "%s\n", "ab\nab\n" =~ /^(a)b$ab$/m'
(with '$' consuming a "\n" because it is /m mode)
These do not match:
perl -e 'printf "%s\n", "ab\nab\n" =~ /^(ab$a)b$/m' perl -e 'printf "%s\n", "ab\nab\n" =~ /^(ab$)ab$/m' perl -e 'printf "%s\n", "ab\nab\n" =~ /^ab$(ab)$/m' perl -e 'printf "%s\n", "ab\nab\n" =~ /^(ab$){2}/m' perl -e 'printf "%s\n", "ab\nab\n" =~ /(ab$){2}/m' perl -e 'printf "%s\n", "ab\nab\n" =~ /(?^:^(?^m:(ab$){2}))/m'
This is greedy but only matches one line
perl -e 'printf "%s\n", "ab\nab\n" =~ /^((?:ab$)+)/m'
and it seems to me that all of them should match. This appears to happen as old as 5.8.9 and as new as 5.32.1
Any insights?
In reply to Regex bug? matching multiple newline with /m by NERDVANA
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |