in reply to Benchmarking regexes
use warnings would help you to find the problem. After two shifts $_[2] becomes $_[0]