hi. https://git.postgresql.org/cgit/postgresql.git/tree/src/test/regress/expected/strings.out#n928
SELECT regexp_substr('abcabcabc', 'a.c'); SELECT regexp_substr('abcabcabc', 'a.c', 2); SELECT regexp_substr('abcabcabc', 'a.c', 1, 3); SELECT regexp_substr('abcabcabc', 'a.c', 1, 4) IS NULL AS t; SELECT regexp_substr('abcabcabc', 'A.C', 1, 2, 'i'); they all return 'abc', there are 3 'abc ' in string 'abcabcabc' except IS NULL query. maybe we can change regexp_substr first argument from "abcabcabc" to "abcaXcaYc". so the result would be more easier to understand.