What is the easiest way to determine the maximum match length of a regular expression?
Specifically, I am using Python's re
module.
E.g. for foo((bar){2,3}|potato)
it would be 12.
Obviously, regexes using operators like *
and +
have theoretically unbounded match lengths; in those cases returning an error or something is fine. Giving an error for regexes using the (?...)
extensions is also fine.
I would also be ok with getting an approximate upper bound, as long as it is always greater than the actual maximum length, but not too much greater.