1<html> 2<head> 3<title>pcre_dfa_exec specification</title> 4</head> 5<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB"> 6<h1>pcre_dfa_exec man page</h1> 7<p> 8Return to the <a href="index.html">PCRE index page</a>. 9</p> 10<p> 11This page is part of the PCRE HTML documentation. It was generated automatically 12from the original man page. If there is any nonsense in it, please consult the 13man page, in case the conversion went wrong. 14<br> 15<br><b> 16SYNOPSIS 17</b><br> 18<P> 19<b>#include <pcre.h></b> 20</P> 21<P> 22<b>int pcre_dfa_exec(const pcre *<i>code</i>, const pcre_extra *<i>extra</i>,</b> 23<b>const char *<i>subject</i>, int <i>length</i>, int <i>startoffset</i>,</b> 24<b>int <i>options</i>, int *<i>ovector</i>, int <i>ovecsize</i>,</b> 25<b>int *<i>workspace</i>, int <i>wscount</i>);</b> 26</P> 27<br><b> 28DESCRIPTION 29</b><br> 30<P> 31This function matches a compiled regular expression against a given subject 32string, using an alternative matching algorithm that scans the subject string 33just once (<i>not</i> Perl-compatible). Note that the main, Perl-compatible, 34matching function is <b>pcre_exec()</b>. The arguments for this function are: 35<pre> 36 <i>code</i> Points to the compiled pattern 37 <i>extra</i> Points to an associated <b>pcre_extra</b> structure, 38 or is NULL 39 <i>subject</i> Points to the subject string 40 <i>length</i> Length of the subject string, in bytes 41 <i>startoffset</i> Offset in bytes in the subject at which to 42 start matching 43 <i>options</i> Option bits 44 <i>ovector</i> Points to a vector of ints for result offsets 45 <i>ovecsize</i> Number of elements in the vector 46 <i>workspace</i> Points to a vector of ints used as working space 47 <i>wscount</i> Number of elements in the vector 48</pre> 49The options are: 50<pre> 51 PCRE_ANCHORED Match only at the first position 52 PCRE_BSR_ANYCRLF \R matches only CR, LF, or CRLF 53 PCRE_BSR_UNICODE \R matches all Unicode line endings 54 PCRE_NEWLINE_ANY Recognize any Unicode newline sequence 55 PCRE_NEWLINE_ANYCRLF Recognize CR, LF, & CRLF as newline sequences 56 PCRE_NEWLINE_CR Recognize CR as the only newline sequence 57 PCRE_NEWLINE_CRLF Recognize CRLF as the only newline sequence 58 PCRE_NEWLINE_LF Recognize LF as the only newline sequence 59 PCRE_NOTBOL Subject is not the beginning of a line 60 PCRE_NOTEOL Subject is not the end of a line 61 PCRE_NOTEMPTY An empty string is not a valid match 62 PCRE_NOTEMPTY_ATSTART An empty string at the start of the subject 63 is not a valid match 64 PCRE_NO_START_OPTIMIZE Do not do "start-match" optimizations 65 PCRE_NO_UTF8_CHECK Do not check the subject for UTF-8 66 validity (only relevant if PCRE_UTF8 67 was set at compile time) 68 PCRE_PARTIAL ) Return PCRE_ERROR_PARTIAL for a partial 69 PCRE_PARTIAL_SOFT ) match if no full matches are found 70 PCRE_PARTIAL_HARD Return PCRE_ERROR_PARTIAL for a partial match 71 even if there is a full match as well 72 PCRE_DFA_SHORTEST Return only the shortest match 73 PCRE_DFA_RESTART Restart after a partial match 74</pre> 75There are restrictions on what may appear in a pattern when using this matching 76function. Details are given in the 77<a href="pcrematching.html"><b>pcrematching</b></a> 78documentation. For details of partial matching, see the 79<a href="pcrepartial.html"><b>pcrepartial</b></a> 80page. 81</P> 82<P> 83A <b>pcre_extra</b> structure contains the following fields: 84<pre> 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 88 <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 91</pre> 92The flag bits are PCRE_EXTRA_STUDY_DATA, PCRE_EXTRA_MATCH_LIMIT, 93PCRE_EXTRA_MATCH_LIMIT_RECURSION, PCRE_EXTRA_CALLOUT_DATA, and 94PCRE_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. 96</P> 97<P> 98There is a complete description of the PCRE native API in the 99<a href="pcreapi.html"><b>pcreapi</b></a> 100page and a description of the POSIX API in the 101<a href="pcreposix.html"><b>pcreposix</b></a> 102page. 103<p> 104Return to the <a href="index.html">PCRE index page</a>. 105</p> 106