.TH PCRE2_COMPILE 3 "23 March 2017" "PCRE2 10.30" .SH NAME PCRE2 - Perl-compatible regular expressions (revised API) .SH SYNOPSIS .rs .sp .B #include .PP .nf .B int pcre2_callout_enumerate(const pcre2_code *\fIcode\fP, .B " int (*\fIcallback\fP)(pcre2_callout_enumerate_block *, void *)," .B " void *\fIcallout_data\fP);" .fi . .SH DESCRIPTION .rs .sp This function scans a compiled regular expression and calls the \fIcallback()\fP function for each callout within the pattern. The yield of the function is zero for success and non-zero otherwise. The arguments are: .sp \fIcode\fP Points to the compiled pattern \fIcallback\fP The callback function \fIcallout_data\fP User data that is passed to the callback .sp The \fIcallback()\fP function is passed a pointer to a data block containing the following fields (not necessarily in this order): .sp uint32_t \fIversion\fP Block version number uint32_t \fIcallout_number\fP Number for numbered callouts PCRE2_SIZE \fIpattern_position\fP Offset to next item in pattern PCRE2_SIZE \fInext_item_length\fP Length of next item in pattern PCRE2_SIZE \fIcallout_string_offset\fP Offset to string within pattern PCRE2_SIZE \fIcallout_string_length\fP Length of callout string PCRE2_SPTR \fIcallout_string\fP Points to callout string or is NULL .sp The second argument passed to the \fBcallback()\fP function is the callout data that was passed to \fBpcre2_callout_enumerate()\fP. The \fBcallback()\fP function must return zero for success. Any other value causes the pattern scan to stop, with the value being passed back as the result of \fBpcre2_callout_enumerate()\fP. .P There is a complete description of the PCRE2 native API in the .\" HREF \fBpcre2api\fP .\" page and a description of the POSIX API in the .\" HREF \fBpcre2posix\fP .\" page.