Perl-compatible regular expressions
#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);
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_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_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 unsigned char * PCRE_INFO_FIRSTTABLE const unsigned char * 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_FIRSTCHARACTER 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
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.