BUG #19104: Does regexp_substr function support non-greedy matching?

PG Bug reporting form <noreply@postgresql.org>

From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: zoulx1982@163.com
Date: 2025-11-05T12:41:30Z
Lists: pgsql-bugs
The following bug has been logged on the website:

Bug reference:      19104
Logged by:          lx zou
Email address:      zoulx1982@163.com
PostgreSQL version: 18.0
Operating system:   Linux
Description:        

When i use regexp_substr to process some text file, i found regexp_substr
does not support non-greedy match.
But fix the case again, i found maybe it support non-greedy, i don't hear
why the two cases get different results? or is it a regexp_substr bug ?
following is the test case:

ostgres=# SELECT regexp_substr('d.cook',  '[a-z]+\.[a-z]{2,}?');
 regexp_substr
---------------
 d.cook
(1 row)

postgres=# SELECT regexp_substr('d.cook',  '[a-z]\.[a-z]{2,}?');
 regexp_substr
---------------
 d.co
(1 row)

postgres=# select version();
                                    version
--------------------------------------------------------------------------------
 PostgreSQL 19devel on x86_64-pc-linux-gnu, compiled by gcc (GCC) 9.1.0,
64-bit
(1 row)

postgres=#

Thanks for your reading.

Regards.