tom arnall am Donnerstag, 30. März 2006 12.36: > the following code: > > my (@main); > $_=" > From a > From: b > From: c > From: d > "; > @main = /From [^\n]*?\n.*?(From: .*?\n).*?/gx; > print "@main"; > print "------------------------------\n"; > @main = /From [^\n]*?\n.*?(From: .*?\n).*?/g; > print "@main"; > > produces: > > From: b > From: d > ------------------------------ > From: b > > the only difference between the two regex lines is the 'x' after '/g' in > the first of the two regex lines.
indeed :-) And your question could be: Why does this produce different results? There's an additional difference on the semantic level: spaces in the 1st regex are irrelevant. Look at the first regex space: in the 2nd regex, it matches (only) in "From a", but not in "From: c", whereas the 1st regex matches "From a" *and* "From: c". /From[^\n]*?\n.*?(From: .*?\n).*?/gx; and /From[^\n]*?\n.*?(From: .*?\n).*?/g; produce both the same output. hth! Hans -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>