Benchmark: timing 10000000 iterations of index, regex, shortindex, shortregex, substrindex, substrregex... index: 18 wallclock secs (17.29 usr + 0.00 sys = 17.29 CPU) @ 578369.00/s (n=10000000) regex: 32 wallclock secs (32.52 usr + 0.00 sys = 32.52 CPU) @ 307503.08/s (n=10000000) shortindex: 15 wallclock secs (15.15 usr + 0.00 sys = 15.15 CPU) @ 660066.01/s (n=10000000) shortregex: 26 wallclock secs (27.14 usr + 0.00 sys = 27.14 CPU) @ 368459.84/s (n=10000000) substrindex: 9 wallclock secs ( 9.39 usr + 0.00 sys = 9.39 CPU) @ 1064962.73/s (n=10000000) substrregex: 17 wallclock secs (16.64 usr + 0.00 sys = 16.64 CPU) @ 600961.54/s (n=10000000) Rate regex shortregex index substrregex shortindex substrindex regex 307503/s -- -17% -47% -49% -53% -71% shortregex 368460/s 20% -- -36% -39% -44% -65% index 578369/s 88% 57% -- -4% -12% -46% substrregex 600962/s 95% 63% 4% -- -9% -44% shortindex 660066/s 115% 79% 14% 10% -- -38% substrindex 1064963/s 246% 189% 84% 77% 61% --