Types
CalloutBlock = object
version*: cint ## Identifies version of block
callout_number*: cint ## Number compiled into pattern
offset_vector*: ptr cint ## The offset vector
subject*: cstring ## The subject being matched
subject_length*: cint ## The length of the subject
start_match*: cint ## Offset to start of this match attempt
current_position*: cint ## Where we currently are in the subject
capture_top*: cint ## Max current capture
capture_last*: cint ## Most recently closed capture
callout_data*: pointer ## Data passed in with the call
pattern_position*: cint ## Offset to next item in the pattern
next_item_length*: cint ## Length of next item in the pattern
mark*: pointer ## Pointer to current mark or NULL
ExtraData = object
flags*: clong ## Bits for which fields are set
study_data*: pointer ## Opaque data from pcre_study()
match_limit*: clong ## Maximum number of calls to match()
callout_data*: pointer ## Data passed back in callouts
tables*: pointer ## Pointer to character tables
match_limit_recursion*: clong ## Max recursive calls to match()
mark*: pointer ## For passing back a mark pointer
executable_jit*: pointer ## Contains a pointer to a compiled jit code
JitCallback = proc (a: pointer): ptr JitStack {.cdecl.}
JitStack = object
JitStack16 = object
JitStack32 = object
Pcre = object
Pcre16 = object
Pcre32 = object
PJitStack {....deprecated.} = ptr JitStack
Deprecated
PPcre {....deprecated.} = ptr Pcre
Deprecated
Consts
ANCHORED = 0x00000010
AUTO_CALLOUT = 0x00004000
BSR_ANYCRLF = 0x00800000
BSR_UNICODE = 0x01000000
CASELESS = 0x00000001
CONFIG_BSR = 8
CONFIG_JIT = 9
CONFIG_JITTARGET = 11
CONFIG_LINK_SIZE = 2
CONFIG_MATCH_LIMIT = 4
CONFIG_MATCH_LIMIT_RECURSION = 7
CONFIG_NEWLINE = 1
CONFIG_PARENS_LIMIT = 13
CONFIG_POSIX_MALLOC_THRESHOLD = 3
CONFIG_STACKRECURSE = 5
CONFIG_UNICODE_PROPERTIES = 6
CONFIG_UTF8 = 0
CONFIG_UTF16 = 10
CONFIG_UTF32 = 12
DFA_RESTART = 0x00020000
DFA_SHORTEST = 0x00010000
DOLLAR_ENDONLY = 0x00000020
DOTALL = 0x00000004
DUPNAMES = 0x00080000
ERROR_BADCOUNT = -15
ERROR_BADENDIANNESS = -29
ERROR_BADLENGTH = -32
ERROR_BADMAGIC = -4
ERROR_BADMODE = -28
ERROR_BADNEWLINE = -23
ERROR_BADOFFSET = -24
ERROR_BADOPTION = -3
ERROR_BADPARTIAL = -13
ERROR_BADUTF8 = -10
ERROR_BADUTF8_OFFSET = -11
ERROR_BADUTF16 = -10
ERROR_BADUTF16_OFFSET = -11
ERROR_BADUTF32 = -10
ERROR_CALLOUT = -9
Never used by PCRE itself Source Edit
ERROR_DFA_BADRESTART = -30
ERROR_DFA_RECURSE = -20
ERROR_DFA_UCOND = -17
ERROR_DFA_UITEM = -16
ERROR_DFA_UMLIMIT = -18
ERROR_DFA_WSSIZE = -19
ERROR_INTERNAL = -14
ERROR_JIT_BADOPTION = -31
ERROR_JIT_STACKLIMIT = -27
ERROR_MATCHLIMIT = -8
ERROR_NOMATCH = -1
ERROR_NOMEMORY = -6
ERROR_NOSUBSTRING = -7
ERROR_NULL = -2
ERROR_NULLWSLIMIT = -22
No longer actually used Source Edit
ERROR_PARTIAL = -12
ERROR_RECURSELOOP = -26
ERROR_RECURSIONLIMIT = -21
ERROR_SHORTUTF8 = -25
ERROR_SHORTUTF16 = -25
ERROR_UNKNOWN_NODE = -5
For backward compatibility Source Edit
ERROR_UNKNOWN_OPCODE = -5
ERROR_UNSET = -33
EXTENDED = 0x00000008
EXTRA = 0x00000040
EXTRA_CALLOUT_DATA = 0x00000004
EXTRA_EXECUTABLE_JIT = 0x00000040
EXTRA_MARK = 0x00000020
EXTRA_MATCH_LIMIT = 0x00000002
EXTRA_MATCH_LIMIT_RECURSION = 0x00000010
EXTRA_STUDY_DATA = 0x00000001
EXTRA_TABLES = 0x00000008
FIRSTLINE = 0x00040000
INFO_BACKREFMAX = 3
INFO_CAPTURECOUNT = 2
INFO_DEFAULT_TABLES = 11
INFO_FIRSTBYTE = 4
INFO_FIRSTCHAR = 4
For backwards compatibility Source Edit
INFO_FIRSTCHARACTER = 19
INFO_FIRSTCHARACTERFLAGS = 20
INFO_FIRSTTABLE = 5
INFO_HASCRORLF = 14
INFO_JCHANGED = 13
INFO_JIT = 16
INFO_JITSIZE = 17
INFO_LASTLITERAL = 6
INFO_MATCH_EMPTY = 25
INFO_MATCHLIMIT = 23
INFO_MAXLOOKBEHIND = 18
INFO_MINLENGTH = 15
INFO_NAMECOUNT = 8
INFO_NAMEENTRYSIZE = 7
INFO_NAMETABLE = 9
INFO_OKPARTIAL = 12
INFO_OPTIONS = 0
INFO_RECURSIONLIMIT = 24
INFO_REQUIREDCHAR = 21
INFO_REQUIREDCHARFLAGS = 22
INFO_SIZE = 1
INFO_STUDYSIZE = 10
JAVASCRIPT_COMPAT = 0x02000000
MULTILINE = 0x00000002
NEVER_UTF = 0x00010000
NEWLINE_ANY = 0x00400000
NEWLINE_ANYCRLF = 0x00500000
NEWLINE_CR = 0x00100000
NEWLINE_CRLF = 0x00300000
NEWLINE_LF = 0x00200000
NO_AUTO_CAPTURE = 0x00001000
NO_AUTO_POSSESS = 0x00020000
NO_START_OPTIMISE = 0x04000000
NO_START_OPTIMIZE = 0x04000000
NO_UTF8_CHECK = 0x00002000
NO_UTF16_CHECK = 0x00002000
NO_UTF32_CHECK = 0x00002000
NOTBOL = 0x00000080
NOTEMPTY = 0x00000400
NOTEMPTY_ATSTART = 0x10000000
NOTEOL = 0x00000100
PARTIAL = 0x00008000
PARTIAL_HARD = 0x08000000
PARTIAL_SOFT = 0x00008000
PCRE_DATE = "2014-09-26"
PCRE_MAJOR = 8
PCRE_MINOR = 36
PCRE_PRERELEASE = true
STUDY_EXTRA_NEEDED = 0x00000008
STUDY_JIT_COMPILE = 0x00000001
STUDY_JIT_PARTIAL_HARD_COMPILE = 0x00000004
STUDY_JIT_PARTIAL_SOFT_COMPILE = 0x00000002
UCP = 0x20000000
UNGREEDY = 0x00000200
UTF8 = 0x00000800
UTF8_ERR0 = 0
UTF8_ERR1 = 1
UTF8_ERR2 = 2
UTF8_ERR3 = 3
UTF8_ERR4 = 4
UTF8_ERR5 = 5
UTF8_ERR6 = 6
UTF8_ERR7 = 7
UTF8_ERR8 = 8
UTF8_ERR9 = 9
UTF8_ERR10 = 10
UTF8_ERR11 = 11
UTF8_ERR12 = 12
UTF8_ERR13 = 13
UTF8_ERR14 = 14
UTF8_ERR15 = 15
UTF8_ERR16 = 16
UTF8_ERR17 = 17
UTF8_ERR18 = 18
UTF8_ERR19 = 19
UTF8_ERR20 = 20
UTF8_ERR21 = 21
UTF8_ERR22 = 22
UTF16 = 0x00000800
UTF16_ERR0 = 0
UTF16_ERR1 = 1
UTF16_ERR2 = 2
UTF16_ERR3 = 3
UTF16_ERR4 = 4
UTF32 = 0x00000800
UTF32_ERR0 = 0
UTF32_ERR1 = 1
UTF32_ERR2 = 2
UTF32_ERR3 = 3
Procs
proc assign_jit_stack(extra: ptr ExtraData; callback: JitCallback; data: pointer) {.
cdecl, importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc compile(pattern: cstring; options: cint; errptr: ptr cstring;
erroffset: ptr cint; tableptr: pointer): ptr Pcre {.cdecl,
importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc compile2(pattern: cstring; options: cint; errorcodeptr: ptr cint;
errptr: ptr cstring; erroffset: ptr cint; tableptr: pointer): ptr Pcre {.
cdecl, importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc config(what: cint; where: pointer): cint {.cdecl, importc: "pcre_$1",
...raises: [], tags: [], forbids: [].}
proc copy_named_substring(code: ptr Pcre; subject: cstring; ovector: ptr cint;
stringcount: cint; stringname: cstring;
buffer: cstring; buffersize: cint): cint {.cdecl,
importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc copy_substring(subject: cstring; ovector: ptr cint; stringcount: cint;
stringnumber: cint; buffer: cstring; buffersize: cint): cint {.
cdecl, importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc dfa_exec(code: ptr Pcre; extra: ptr ExtraData; subject: cstring;
length: cint; startoffset: cint; options: cint; ovector: ptr cint;
ovecsize: cint; workspace: ptr cint; wscount: cint): cint {.cdecl,
importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc exec(code: ptr Pcre; extra: ptr ExtraData; subject: cstring; length: cint;
startoffset: cint; options: cint; ovector: ptr cint; ovecsize: cint): cint {.
cdecl, importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc free_study(extra: ptr ExtraData) {.cdecl, importc: "pcre_$1", ...raises: [],
tags: [], forbids: [].}
proc free_substring(stringptr: cstring) {.cdecl, importc: "pcre_$1", ...raises: [],
tags: [], forbids: [].}
proc free_substring_list(stringptr: cstringArray) {.cdecl, importc: "pcre_$1",
...raises: [], tags: [], forbids: [].}
proc fullinfo(code: ptr Pcre; extra: ptr ExtraData; what: cint; where: pointer): cint {.
cdecl, importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc get_named_substring(code: ptr Pcre; subject: cstring; ovector: ptr cint;
stringcount: cint; stringname: cstring;
stringptr: cstringArray): cint {.cdecl,
importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc get_stringnumber(code: ptr Pcre; name: cstring): cint {.cdecl,
importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc get_stringtable_entries(code: ptr Pcre; name: cstring; first: cstringArray;
last: cstringArray): cint {.cdecl,
importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc get_substring(subject: cstring; ovector: ptr cint; stringcount: cint;
stringnumber: cint; stringptr: cstringArray): cint {.cdecl,
importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc get_substring_list(subject: cstring; ovector: ptr cint; stringcount: cint;
listptr: ptr cstringArray): cint {.cdecl,
importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc jit_exec(code: ptr Pcre; extra: ptr ExtraData; subject: cstring;
length: cint; startoffset: cint; options: cint; ovector: ptr cint;
ovecsize: cint; jstack: ptr JitStack): cint {.cdecl,
importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc jit_free_unused_memory() {.cdecl, importc: "pcre_$1", ...raises: [], tags: [],
forbids: [].}
proc jit_stack_alloc(startsize: cint; maxsize: cint): ptr JitStack {.cdecl,
importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc jit_stack_free(stack: ptr JitStack) {.cdecl, importc: "pcre_$1",
...raises: [], tags: [], forbids: [].}
proc maketables(): pointer {.cdecl, importc: "pcre_$1", ...raises: [], tags: [],
forbids: [].}
proc pattern_to_host_byte_order(code: ptr Pcre; extra: ptr ExtraData;
tables: pointer): cint {.cdecl,
importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc refcount(code: ptr Pcre; adjust: cint): cint {.cdecl, importc: "pcre_$1",
...raises: [], tags: [], forbids: [].}
proc study(code: ptr Pcre; options: cint; errptr: ptr cstring): ptr ExtraData {.
cdecl, importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
proc study(code: ptr Pcre; options: cint; errptr: var cstring): ptr ExtraData {.
...deprecated, cdecl, importc: "pcre_$1", ...raises: [], tags: [], forbids: [].}
Deprecated
proc version(): cstring {.cdecl, importc: "pcre_$1", ...raises: [], tags: [],
forbids: [].}