That said, while it's a fair test, I don't think it's a particularly useful one. It would be interesting to see how the two compete when they do something equivalent but non-trivial.
It was not meant to be more than a limited test of the TCL event loop and my code.
Also, regexes are easily JITable and of course implementations having a JIT are going to be much more performant than normal interpreters. This explains the results of your  - I didn't check, but I suppose it's a vanilla Lua interpreter and not LuaJIT.
On the other hand, I think the point that real world performance will depend on the task in hand stands.
I was never all that great a TCL programmer - it was the first language I did any real work in, and I had quite limited experience at the time I wrote that.