jian he <jian.universal...@gmail.com> writes: > https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP
> """ > or as a plain three-argument function: > substring(string, pattern, escape-character) > """ > but here "escape-character" is optional. > substring(string, pattern [,escape-character]) > would be more accurate. No, the text is correct as written. substring(text, text) is a completely different function that implements POSIX regular expressions, not SQL regular expressions. It's described in the next section (9.7.3). For example, regression=# select substring('foobar', 'o.b'); substring ----------- oob (1 row) regression=# select substring('foobar', 'o.b', ''); substring ----------- (1 row) because '.' is a metacharacter in POSIX but not SQL regexps. regards, tom lane