The following bug has been logged on the website:
Bug reference: 15595
Logged by: Damion
Email address: zhq651@126.com
PostgreSQL version: 11.1
Operating system: linux
Description:
Hi,
when I use setup_regexp_matches, I found matchctx->npatterns is always 1 no
matter pattern have not or one subexpr subexpression.
so I can't tell whether there is a subexpression. see below:
if orig_str is '221133' & pattern is '11'
(gdb) p nth_subexpr
$23 = 1
(gdb) p matchctx->npatterns
$24 = 1
if orig_str is '221133' & pattern is '(11)'
(gdb) p nth_subexpr
$25 = 1
(gdb) p matchctx->npatterns
$26 = 1
if pattern is '((1)1)' or '((11))' (2 subexpression or more), I can kwown
how many subexpression by matchctx->npatterns .
postgres=# SELECT regexp_substr('221133', '((1)1)', 1, 1, 'i', 1);
(gdb) p matchctx->npatterns
$27 = 2
(gdb) p nth_subexpr
$28 = 1
Thanks.