Subject: Re: bug#74861: 31.0.50; etags no longer processing shy groups as expected in --regex options

From: Paul Eggert <[email-masked]>
Date: Sat, 14 Dec 2024 11:39:54 -0700

On 12/14/24 01:33, Eli Zaretskii wrote:
> I'm guessing this is because Emacs 27 switched to the Gnulib's regex
> implementation in etags and other lib-src programs, whereas previous
> versions used the Emacs's own regex code (which is still used for
> Emacs's own regex search and replacement code).
> 
> CC'ing Paul Eggert, in the hope he can tell whether this is expected
> or not, or how to fix it.

Yes that's expected, as glibc/Gnulib regex doesn't do shy groups. A 
workaround is to not use shy groups, e.g.:

etags --regex='/DEFINE_FF *(\(TAG \)? *\([^)]+\)/\2/' \
   --output ETAGS-test foo.c

This should be portable between both older and newer etags.