Don't copy regexp.Regexp during range

Regexps have a sync.Mutex field, which is not
safe to copy. Future versions of go vet will
likely flag this (golang.org/issue/8356).

This also allows the Regexp to re-use its machine
during benchmarking, to nice effect:

benchmark                  old ns/op     new ns/op     delta
BenchmarkRegExpLoop        721637        192566        -73.32%