Wow, pretty sure I played with something like this for Python in the 90s. People have been trying to replace regexps with something more readable for a long time.
This seems like a decent attempt, although the syntax for captures looks a little clumsy.