Skip Menu |
Report information
Id: 132167
Status: resolved
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: j.imrie1 [at]

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: unknown
Perl Version: (no value)
Fixed In: (no value)

Date: Tue, 26 Sep 2017 11:17:24 +0100
From: John Imrie <j.imrie1 [...]>
Subject: Error parsing regex set in perl 5.26.0
To: perlbug [...]
Download (untitled) / with headers
text/plain 3.9k
Using Perl 5.26.0 The regex qr/(?[ ( \p{Uppercase} ) + (\p{Lowercase} - ([a] + [b]))  ])/ Does not parse giving the error Incomplete expression within '(?[ ])' in regex; marked by <-- HERE in m/(?[ ( \p{Uppercase} ) + (\p{Lowercase} - ([a] + [b])) <-- HERE   ])/ --- Flags:     category=core     severity=low --- Site configuration information for perl 5.26.0: Configured by strawberry-perl at Sat Sep  2 16:28:54 2017. Summary of my perl5 (revision 5 version 26 subversion 0) configuration:   Platform:     osname=MSWin32     osvers=6.3     archname=MSWin32-x64-multi-thread     uname='Win32 strawberry-perl #1 Sat Sep  2 16:25:32 2017 x64'     config_args='undef'     hint=recommended     useposix=true     d_sigaction=undef     useithreads=define     usemultiplicity=define     use64bitint=define     use64bitall=undef     uselongdouble=undef     usemymalloc=n     default_inc_excludes_dot=define     bincompat5005=undef   Compiler:     cc='gcc'     ccflags =' -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields'     optimize='-s -O2'     cppflags='-DWIN32'     ccversion=''     gccversion='7.1.0'     gccosandvers=''     intsize=4     longsize=4     ptrsize=8     doublesize=8     byteorder=12345678     doublekind=3     d_longlong=define     longlongsize=8     d_longdbl=define     longdblsize=16     longdblkind=3     ivtype='long long'     ivsize=8     nvtype='double'     nvsize=8     Off_t='long long'     lseeksize=8     alignbytes=8     prototype=define   Linker and Libraries:     ld='g++'     ldflags ='-s -L"D:\Strawberry\perl\lib\CORE" -L"D:\Strawberry\c\lib"'     libpth=D:\Strawberry\c\lib D:\Strawberry\c\x86_64-w64-mingw32\lib D:\Strawberry\c\lib\gcc\x86_64-w64-mingw32\7.1.0     libs= -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32     perllibs= -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32     libc=     so=dll     useshrplib=true     libperl=libperl526.a     gnulibc_version=''   Dynamic Linking:     dlsrc=dl_win32.xs     dlext=xs.dll     d_dlsymun=undef     ccdlflags=' '     cccdlflags=' '     lddlflags='-mdll -s -L"D:\Strawberry\perl\lib\CORE" -L"D:\Strawberry\c\lib"' --- @INC for perl 5.26.0:     D:/Strawberry/perl/site/lib     D:/Strawberry/perl/vendor/lib     D:/Strawberry/perl/lib --- Environment for perl 5.26.0:     HOME (unset)     LANG (unset)     LANGUAGE (unset)     LD_LIBRARY_PATH (unset)     LOGDIR (unset)     PATH=C:\Program Files\Java\jre1.8.0_144\bin;C:\Program Files\Java\jre1.8.0_131\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\GtkSharp\2.12\bin;D:\Strawberry\c\bin;D:\Strawberry\perl\site\bin;D:\Strawberry\perl\bin;C:\Users\John\AppData\Local\Microsoft\WindowsApps;     PERL_BADLANG (unset)     SHELL (unset)
RT-Send-CC: perl5-porters [...]
Download (untitled) / with headers
text/plain 1.7k
On Tue, 26 Sep 2017 10:19:07 GMT, wrote: Show quoted text
> Using Perl 5.26.0 > > The regex > > qr/(?[ ( \p{Uppercase} ) + (\p{Lowercase} - ([a] + [b]))  ])/ > > Does not parse giving the error > > Incomplete expression within '(?[ ])' in regex; marked by <-- HERE in > m/(?[ ( \p{Uppercase} ) + (\p{Lowercase} - ([a] + [b])) <-- HERE   ])/ >
This formulation of the bisect runner: ##### perl Porting/ --start=v5.24.0 --end=v5.26.0 -e '$pattern=qr/(?[ ( \p{Uppercase} ) + (\p{Lowercase} - ([a] + [b])) ])/;' ##### ... pointed to the following commit. Note the warning about the regex_sets feature being experimental. ##### The regex_sets feature is experimental in regex; marked by <-- HERE in m/(?[ <-- HERE ( \p{Uppercase} ) + (\p{Lowercase} - ([a] + [b])) ])/ at -e line 1. HEAD is now at 2cb86ab regcomp.c: Typo, spacing in comment good - zero exit from ./perl -Ilib -e $pattern=qr/(?[ ( \p{Uppercase} ) + (\p{Lowercase} - ([a] + [b])) ])/; c333712c4a550eeb3146b964d8508f772e294a49 is the first bad commit commit c333712c4a550eeb3146b964d8508f772e294a49 Author: Karl Williamson <> Date: Wed Aug 31 17:05:45 2016 -0600 PATCH: [perl #129122] regex sets syntax error This was caused by two statements being in the wrong order. One should save something on the stack before changing it, not after. However fixing this led to the discovery of another bug in which an error case was failed to be detected. :100644 100644 630cf2602d72e60cb7c297b468a13df45b5d5c26 e7e41ff2f5b5a99d4f3724b970607cb9bd571dfc M regcomp.c :040000 040000 7a74755f9e6b4b7f83a46d9d8a4b1cca2e4a0365 8d8933e3fa9a6d4f09e5a010b7f30ed7d227ca38 M t bisect run success That took 1239 seconds. ##### Thank you very much. -- James E Keenan (
RT-Send-CC: perl5-porters [...]
Thanks for the report. Fixed by 8121278aa8fe72e9e8aca8651c7f1d4fa204ac1d -- Karl Williamson
Download (untitled) / with headers
text/plain 317b
Thank you for filing this report. You have helped make Perl better. With the release yesterday of Perl 5.28.0, this and 185 other issues have been resolved. Perl 5.28.0 may be downloaded via: If you find that the problem persists, feel free to reopen this ticket.

This service is sponsored and maintained by Best Practical Solutions and runs on infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at