---
name: "pcre32_fullinfo"
section: "3"
platform: "linux"
package: "pcre"
version: "8.45-5"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/pcre_fullinfo"
---

# pcre32\_fullinfo(3)

Perl-compatible regular expressions

Part of [pcre\_fullinfo(3)](/pcre_fullinfo/3.md).

## NAME

PCRE - Perl-compatible regular expressions

## SYNOPSIS

**#include \<pcre.h\>**

```
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

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.
