interp: avoid copying strings unless necessary
interp: avoid copying strings unless necessary

Simplify lonePattern too, while at it.

name   old time/op    new time/op    delta
Run-4    1.41ms ± 1%    1.42ms ± 2%    ~     (p=0.310 n=6+6)

name   old alloc/op   new alloc/op   delta
Run-4     143kB ± 0%     143kB ± 0%  -0.40%  (p=0.008 n=5+5)

name   old allocs/op  new allocs/op  delta
Run-4       517 ± 0%       505 ± 0%  -2.26%  (p=0.000 n=5+6)

mvdan/sh,mvdan/sh,mvdan/sh,mvdan/sh