I tried this without the ^N for a while, but couldn't get the backreferences to work. Thanks for the new knowledge about the 'postponed eval' and the ^N.
I had seen the postponed eval previously, but had stayed away from trying it due to the comments about 'highly experimental'.