jian he <jian.universality@gmail.com> writes:
> select regexp_matches(E'abc', 'a{0,257}.');
> select regexp_matches(E'abc', 'a{-0,257}.');
> select regexp_matches(E'abc', 'a{-1,2}.');
> based on the manual description, the second and the third query should
> error out?
No. Read
https://www.postgresql.org/docs/current/functions-matching.html#POSIX-ATOMS-TABLE
which says that '{'
when followed by a character other than a digit, matches the
left-brace character {; when followed by a digit, it is the
beginning of a bound (see below)
So your second and third patterns are just literal matches, except
for the final '.'.
You can quibble about how bright that choice was, but I think it's
mandated by POSIX, not just something that Henry Spencer thought up.
regards, tom lane