in reply to Regular Expression tricky newline problem
Greedy matching works as long as you're not using the /s modifier:
The /m modifier is necessary to have the ^ anchor match the beginning of any line in a multi-line string. The greedy .* will then match anything until the end of that line.use strict; my $string = join '', <DATA>; if($string =~ /^Line3 : (.*)/m) { print "$1\n"; } __DATA__ Line1 : Dit is de eerste regel Line2 : Dit is de tweede regel Line3 : Dit is de derde regel Line4 : Dit is de vierde regel
Had you used the /s modifier, the greedy .* would have matched newlines as well and therefore gobbled up everything until the end of the multi-line string.
In Section
Seekers of Perl Wisdom