I have zero knowlegde about LPEG internals.
BUT dont you think there is some beauty is having 0,1 signal ( matched , not matched ( nil ) ) ?
Even if personally I would really love it if LPEG had more functions to do more complicated stuff. Its simplicity is what drew me towards it.
If it was more complicated than that, as a new user I might have not used LPEG.
Now that I am more comfortable with LPEG constructs it makes sense to find out more complicated error handling.