or download this
my $s = q("You spin me ""around"" and ""around"", ""round"", like a re
+cord, ""round"" and ""around"".);
use Benchmark 'cmpthese';
...
cut => sub { return $s =~ /"(?>[^"]+|"")*"(?!")/ },
straight => sub { return $s =~ /"(?:[^"]+|"")*"(?!")/ }
});