use Benchmark qw( cmpthese ); my $ad = <<'__EOI__'; ------ Yahoo meow meow meow meow meow meow meow meow woof woof woof woof jabberwocky foo bar! foo!! __EOI__ my $email = join '', map chr(rand(26)+ord('a')), 1..2000; our $file = "$email\n$ad\cA" x 1000; cmpthese(-3, { ikegami => 'use strict; use warnings; my $x = our $file; $x =~ s/----- - Yahoo.*?(?=\cB)//sg;', JavaFan => 'use strict; use warnings; my $x = our $file; $x =~ s/----- - Yahoo[^\cB]*+//g;', JavaFan_noplus => 'use strict; use warnings; my $x = our $file; $x =~ s/----- - Yahoo[^\cB]*//g;', }); __END__ (warning: too few iterations for a reliable count) Rate ikegami JavaFan JavaFan_noplus ikegami 0.264/s -- -98% -98% JavaFan 16.2/s 6053% -- -1% JavaFan_noplus 16.5/s 6135% 1% --