use strict; use warnings; use feature 'say'; use Benchmark 'cmpthese'; my $pat = qr/\d+/; my $s = '123abc' x 1e6; cmpthese -1, { foo => sub { 1 while $s =~ /\G $pat \D+ /cgx }, bar => sub { 1 while $s =~ /\G $pat \D+ /cgxo }, }; __END__ Rate foo bar foo 1213522/s -- -88% bar 10345112/s 752% --