- re_config(?Term)
- Extract configuration information from the pcre library. Term is of
the form
Name(Value)
. Name is derived from thePCRE_CONFIG_*
constant after removingPCRE_CONFIG_
and mapping the name to lower case, e.g.utf8
,unicode_properties
, etc. Value is a Prolog boolean, integer, or atom. For boolean (1 or 0) values,true
orfalse
is returned.re_config/1 will backtrack through all the possible configuration values if its argument is a variable. If an unknown option is specified, re_config/1 fails.
Non-compatible changes between PCRE1 and PCRE2 because numeric values changed:
bsr
andnewline
have been replaced bybsr2
andnewline2
:bsr2
- previouslybsr
returned 0 or 1; now returnsunicode
oranycrlf
newline2
- previouslynewline
returned an integer, now returnscr
,lf
,crlf
,any
,anycrlf
,nul
Term values are as follows. Some values might not exist, depending on the version of PCRE2 and the options it was built with.
- bsr2
The character sequences that the
\R
escape sequence matches by default. Replacesbsr
option from PCRE1, which is not compatible. - compiled_widths An integer whose lower bits indicate which code unit widths were selected when PCRE2 was built. The 1-bit indicates 8-bit support, and the 2-bit and 4-bit indicate 16-bit and 32-bit support, respectively. The 1 bit should always be set because the wrapper code requires 8 bit support.
- depthlimit
- heaplimit
- jit
true
if just-in-time compiling is available. - jittarget A string containing the name of the architecture for which the JIT compiler is configured. e.g., 'x86 64bit (little endian + unaligned)'.
- linksize
- matchlimit
- never_backslash_c
- newline2
An atom whose value specifies the default character sequence that
is recognized as meaning "newline" (
cr
,lf
,crlf
,any
,anycrlf
,nul
). Replacesnewline
option from PCRE1, which is not compatible. - parenslimit
- stackrecurse
- unicode
Always
true
- unicode_version The unicode version as an atom, e.g. '12.1.0'.
- utf8 - synonym for
unicode
- parens_limit
- version
The version information as an atom, containing the PCRE version
number and release date, e.g. '10.34 2019-11-21'.
For backwards compatibility with PCRE1, the following are accepted, but are deprecated:
utf8
- synonym forunicode
link_size
- synonym forlinksize
match_limit
- synonym formatchlimit
parens_limit
- synonym forparenslimit
unicode_properties
- always true
The following have been removed because they don't exist in PCRE2 and don't seem to have any meaningful use in PCRE1:
posix_malloc_threshold
match_limit_recursion