PCRE\_FULLINFO(3) Library Functions Manual PCRE\_FULLINFO(3)

# [NAME](#NAME)

PCRE - Perl-compatible regular expressions

# [SYNOPSIS](#SYNOPSIS)

**#include &lt;pcre.h&gt;**

```
int pcre_fullinfo(const pcre *code, const pcre_extra *extra,
     int what, void *where);

int pcre16_fullinfo(const pcre16 *code, const pcre16_extra *extra,
     int what, void *where);

int pcre32_fullinfo(const pcre32 *code, const pcre32_extra *extra,
     int what, void *where);
```

# [DESCRIPTION](#DESCRIPTION)

This function returns information about a compiled pattern. Its arguments are:

*code* Compiled regular expression  
*extra* Result of **pcre\[16|32]\_study()** or NULL  
*what* What information is required  
*where* Where to put the information

The following information is available:

PCRE\_INFO\_BACKREFMAX Number of highest back reference  
PCRE\_INFO\_CAPTURECOUNT Number of capturing subpatterns  
PCRE\_INFO\_DEFAULT\_TABLES Pointer to default tables  
PCRE\_INFO\_FIRSTBYTE Fixed first data unit for a match, or  
\-1 for start of string  
or after newline, or  
\-2 otherwise  
PCRE\_INFO\_FIRSTTABLE Table of first data units (after studying)  
PCRE\_INFO\_HASCRORLF Return 1 if explicit CR or LF matches exist  
PCRE\_INFO\_JCHANGED Return 1 if (?J) or (?-J) was used  
PCRE\_INFO\_JIT Return 1 after successful JIT compilation  
PCRE\_INFO\_JITSIZE Size of JIT compiled code  
PCRE\_INFO\_LASTLITERAL Literal last data unit required  
PCRE\_INFO\_MINLENGTH Lower bound length of matching strings  
PCRE\_INFO\_MATCHEMPTY Return 1 if the pattern can match an empty string,  
0 otherwise  
PCRE\_INFO\_MATCHLIMIT Match limit if set, otherwise PCRE\_RROR\_UNSET  
PCRE\_INFO\_MAXLOOKBEHIND Length (in characters) of the longest lookbehind assertion  
PCRE\_INFO\_NAMECOUNT Number of named subpatterns  
PCRE\_INFO\_NAMEENTRYSIZE Size of name table entry  
PCRE\_INFO\_NAMETABLE Pointer to name table  
PCRE\_INFO\_OKPARTIAL Return 1 if partial matching can be tried  
(always returns 1 after release 8.00)  
PCRE\_INFO\_OPTIONS Option bits used for compilation  
PCRE\_INFO\_SIZE Size of compiled pattern  
PCRE\_INFO\_STUDYSIZE Size of study data  
PCRE\_INFO\_FIRSTCHARACTER Fixed first data unit for a match  
PCRE\_INFO\_FIRSTCHARACTERFLAGS Returns  
1 if there is a first data character set, which can  
then be retrieved using PCRE\_INFO\_FIRSTCHARACTER,  
2 if the first character is at the start of the data  
string or after a newline, and  
0 otherwise  
PCRE\_INFO\_RECURSIONLIMIT Recursion limit if set, otherwise PCRE\_ERROR\_UNSET  
PCRE\_INFO\_REQUIREDCHAR Literal last data unit required  
PCRE\_INFO\_REQUIREDCHARFLAGS Returns 1 if the last data character is set (which can then  
be retrieved using PCRE\_INFO\_REQUIREDCHAR); 0 otherwise

The *where* argument must point to an integer variable, except for the following *what* values:

PCRE\_INFO\_DEFAULT\_TABLES const uint8\_t *  
PCRE\_INFO\_FIRSTCHARACTER uint32\_t  
PCRE\_INFO\_FIRSTTABLE const uint8\_t *  
PCRE\_INFO\_JITSIZE size\_t  
PCRE\_INFO\_MATCHLIMIT uint32\_t  
PCRE\_INFO\_NAMETABLE PCRE\_SPTR16 (16-bit library)  
PCRE\_INFO\_NAMETABLE PCRE\_SPTR32 (32-bit library)  
PCRE\_INFO\_NAMETABLE const unsigned char * (8-bit library)  
PCRE\_INFO\_OPTIONS unsigned long int  
PCRE\_INFO\_SIZE size\_t  
PCRE\_INFO\_STUDYSIZE size\_t  
PCRE\_INFO\_RECURSIONLIMIT uint32\_t  
PCRE\_INFO\_REQUIREDCHAR uint32\_t

The yield of the function is zero on success or:

PCRE\_ERROR\_NULL the argument *code* was NULL  
the argument *where* was NULL  
PCRE\_ERROR\_BADMAGIC the "magic number" was not found  
PCRE\_ERROR\_BADOPTION the value of *what* was invalid  
PCRE\_ERROR\_UNSET the option was not set

There is a complete description of the PCRE native API in the **pcreapi** page and a description of the POSIX API in the **pcreposix** page.

21 April 2014 PCRE 8.36

---

Document: pcre_fullinfo(3) from pcre 8.45-r11 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.bz2
