[pcre-dev] [Bug 1852] Large regex fails to compile, Limitati…

Top Page
Delete this message
Author: admin
Date:  
To: pcre-dev
Subject: [pcre-dev] [Bug 1852] Large regex fails to compile, Limitation in pcre?
https://bugs.exim.org/show_bug.cgi?id=1852

Philip Hazel <ph10@???> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |INVALID


--- Comment #1 from Philip Hazel <ph10@???> ---
Yes. Internally it uses 16-bit offsets. However, it is possible to compile PCRE
with 24-bit or even 32-bit offsets, thus allowing for very large patterns. This
is a quote from the "pcrelimits" man page:

      The maximum length of a compiled  pattern  is  approximately  64K  data
       units  (bytes  for  the  8-bit  library,  16-bit  units  for the 16-bit
       library, and 32-bit units for the 32-bit library) if PCRE  is  compiled
       with  the default internal linkage size, which is 2 bytes for the 8-bit
       and 16-bit libraries, and 4 bytes for the 32-bit library. If  you  want
       to process regular expressions that are truly enormous, you can compile
       PCRE with an internal linkage size of 3 or 4 (when building the  16-bit
       or  32-bit  library,  3 is rounded up to 4). See the README file in the
       source distribution and the pcrebuild  documentation  for  details.  In
       these  cases  the limit is substantially larger.  However, the speed of
       execution is slower.


There are some other things that might give that error, but the above is most
likely if you are just making a bigger and bigger pattern.

Incidentally, the current release of PCRE1 is 8.39, released not long ago.

--
You are receiving this mail because:
You are on the CC list for the bug.