Benchmark: running match, silly, substr, unpack, each for at least 1 CPU seconds... match: 3 wallclock secs ( 1.00 usr + 0.02 sys = 1.02 CPU) @ 180382.35/s (n=183990) silly: 4 wallclock secs ( 1.15 usr + 0.09 sys = 1.24 CPU) @ 17341.13/s (n=21503) substr: 2 wallclock secs ( 1.00 usr + 0.05 sys = 1.05 CPU) @ 944029.52/s (n=991231) unpack: 2 wallclock secs ( 1.02 usr + 0.06 sys = 1.08 CPU) @ 362192.59/s (n=391168)