Thread

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

    PG Bug reporting form <noreply@postgresql.org> — 2025-11-05T12:41:30Z

    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.