24
24
<b>int <i>options</i>, int *<i>ovector</i>, int <i>ovecsize</i>,</b>
25
25
<b>int *<i>workspace</i>, int <i>wscount</i>);</b>
28
<b>int pcre16_dfa_exec(const pcre16 *<i>code</i>, const pcre16_extra *<i>extra</i>,</b>
29
<b>PCRE_SPTR16 <i>subject</i>, int <i>length</i>, int <i>startoffset</i>,</b>
30
<b>int <i>options</i>, int *<i>ovector</i>, int <i>ovecsize</i>,</b>
31
<b>int *<i>workspace</i>, int <i>wscount</i>);</b>
31
37
This function matches a compiled regular expression against a given subject
32
38
string, using an alternative matching algorithm that scans the subject string
33
39
just once (<i>not</i> Perl-compatible). Note that the main, Perl-compatible,
34
matching function is <b>pcre_exec()</b>. The arguments for this function are:
40
matching function is <b>pcre[16]_exec()</b>. The arguments for this function
36
43
<i>code</i> Points to the compiled pattern
37
<i>extra</i> Points to an associated <b>pcre_extra</b> structure,
44
<i>extra</i> Points to an associated <b>pcre[16]_extra</b> structure,
39
46
<i>subject</i> Points to the subject string
40
47
<i>length</i> Length of the subject string, in bytes
62
69
PCRE_NOTEMPTY_ATSTART An empty string at the start of the subject
63
70
is not a valid match
64
71
PCRE_NO_START_OPTIMIZE Do not do "start-match" optimizations
72
PCRE_NO_UTF16_CHECK Do not check the subject for UTF-16
73
validity (only relevant if PCRE_UTF16
74
was set at compile time)
65
75
PCRE_NO_UTF8_CHECK Do not check the subject for UTF-8
66
76
validity (only relevant if PCRE_UTF8
67
77
was set at compile time)
83
A <b>pcre_extra</b> structure contains the following fields:
93
A <b>pcre[16]_extra</b> structure contains the following fields:
85
<i>flags</i> Bits indicating which fields are set
86
<i>study_data</i> Opaque data from <b>pcre_study()</b>
87
<i>match_limit</i> Limit on internal resource use
95
<i>flags</i> Bits indicating which fields are set
96
<i>study_data</i> Opaque data from <b>pcre[16]_study()</b>
97
<i>match_limit</i> Limit on internal resource use
88
98
<i>match_limit_recursion</i> Limit on internal recursion depth
89
<i>callout_data</i> Opaque data passed back to callouts
90
<i>tables</i> Points to character tables or is NULL
99
<i>callout_data</i> Opaque data passed back to callouts
100
<i>tables</i> Points to character tables or is NULL
101
<i>mark</i> For passing back a *MARK pointer
102
<i>executable_jit</i> Opaque data from JIT compilation
92
104
The flag bits are PCRE_EXTRA_STUDY_DATA, PCRE_EXTRA_MATCH_LIMIT,
93
PCRE_EXTRA_MATCH_LIMIT_RECURSION, PCRE_EXTRA_CALLOUT_DATA, and
94
PCRE_EXTRA_TABLES. For this matching function, the <i>match_limit</i> and
95
<i>match_limit_recursion</i> fields are not used, and must not be set.
105
PCRE_EXTRA_MATCH_LIMIT_RECURSION, PCRE_EXTRA_CALLOUT_DATA,
106
PCRE_EXTRA_TABLES, PCRE_EXTRA_MARK and PCRE_EXTRA_EXECUTABLE_JIT. For this
107
matching function, the <i>match_limit</i> and <i>match_limit_recursion</i> fields
108
are not used, and must not be set. The PCRE_EXTRA_EXECUTABLE_JIT flag and
109
the corresponding variable are ignored.
98
112
There is a complete description of the PCRE native API in the