use strict; use warnings; use Benchmark 'cmpthese'; my $date = '(30-Jul-2015)'; my $string = 'A' x 1e5 . $date . 'B' x 1e5; cmpthese ( 1e4, { Greedy => sub { $string =~ / ^ .* ( \( \d{2} - \w{3} - \d{4} \) ) /x; $1 eq $date or die $!; }, Frugal => sub { $string =~ / ^ .*? ( \( \d{2} - \w{3} - \d{4} \) ) /x; $1 eq $date or die $!; }, } ); #### 17:36 >perl 1323_SoPW.pl Rate Greedy Frugal Greedy 1068/s -- -70% Frugal 3555/s 233% -- 17:37 >