#!/usr/bin/perl use strict; use warnings; use Benchmark 'cmpthese'; our $re1 = qr /"([^"\\]|\\.)*"/; our $re2 = qr /"([^"\\]+|\\.)*"/; our $re3 = qr /"[^"\\]*(\\.[^"\\]*)*"/; chomp (our @data = ); cmpthese -5 => { plain => '/$re1/ for @data', unroll1 => '/$re2/ for @data', unroll2 => '/$re3/ for @data', }; __DATA__ A "red" fish A "red" fish and a "blue" fish The book is called "A 5\" dwarf" A backslash ("\\") and a forwardslash ("/") No delimiters here at all.