Idea of the day: JIT the bytecode produced by the regexp engine. Shouldn't actually be too hard. Produce a bunch of C functions which perform each node, keep everything in registers, and use C magic to build a buffer stringing the assembly code for each function together.
Every night before I teach, I dread the morning. But then when I get into the class and start teaching, I love it. Weird.
An optimizer for Parse::RecDescent. It's not totally finished, and has a few glaring bugs in it, but it can turn this:
Three kernel panics in an hour, and the damned thing still won't work. I think I preferred hacking AxKit.