jian he <[email protected]> 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
