my $data = "00:01:00Something here bla bla blaTYPE00:02:00". "Something here bla bla blaANOTHERTYPE00:03:00S". "omething here bla bla blaEVENMORETYPES"; use Benchmark; timethese (100000, { withsplit => sub { my @lines = split /(?=\d\d:\d\d:\d\d)/, $data; }, nosplit => sub { my @lines = $data =~ /(\d{2}:\d{2}:\d{2}[^\d]*)/g; } } );