Great work! Personally I think you should build one using `lexbase` instead of `re` as `re` seems to be too big just for this (the C version is written in plain C without `re`).
Actually if I could find sometime I'd try to build a `lexbase` version as it seemed fun :)
