#!/usr/bin/perl -w use strict; use Benchmark 'cmpthese'; my @string = ( "foofoo catbar", "foofoofoo catbar", "foo foo cat bar", "foo flew over the", "cufoofoo nest", ); cmpthese(50_000, { foo_or => sub { /^(foob|)foofoo/ foreach (@string) }, foo_qs => sub { /^(foob)?foofoo/ foreach (@string) } });