#!/usr/bin/perl -w use Benchmark; $email = ''; Benchmark::cmpthese(100000000, { '.*' => sub { $email =~ m/.*?\<(.*?)\>/ }, '^>' => sub { $email =~ m/<([^>]+)>/ } } ); #### Benchmark: timing 100000000 iterations of .*, ^>... .*: 1437 wallclock secs (1432.85 usr + 0.06 sys = 1432.91 CPU) @ 69788.05/s (n=100000000) ^>: 645 wallclock secs (645.23 usr + 0.06 sys = 645.29 CPU) @ 154969.08/s (n=100000000) Rate .* ^> .* 69788/s -- -55% ^> 154969/s 122% --