PCRE2_COMPILE(3)
π NAME π
PCRE2 - Perl-compatible regular expressions (revised API)
Hi bestie! This is the PCRE2_COMPILE(3) page from the Library Functions Manual, and the function we're actually stanning here is pcre2_callout_enumerate(). Yes, the title and the function name are doing their own thing β keep both in your brain, okay? π
β¨ SYNOPSIS β¨
#include <pcre2.h>
int pcre2_callout_enumerate(const pcre2_code *code,
int (*callback)(pcre2_callout_enumerate_block *, void *),
void *callout_data);
Okay so that's the whole shape of it. Now let's get into the lore π₯
π DESCRIPTION π
This function scans a compiled regular expression and calls the callback() function for each callout within the pattern. The yield of the function is zero for success and non-zero otherwise. Periodt. The arguments are:
codeβ points to the compiled pattern, bestie.callbackβ the callback function.callout_dataβ user data that is passed to the callback.
The callback() function is passed a pointer to a data block containing the following fields (not necessarily in this order):
uint32_t version Block version number
uint32_t callout_number Number for numbered callouts
PCRE2_SIZE pattern_position Offset to next item in pattern
PCRE2_SIZE next_item_length Length of next item in pattern
PCRE2_SIZE callout_string_offset Offset to string within pattern
PCRE2_SIZE callout_string_length Length of callout string
PCRE2_SPTR callout_string Points to callout string or is NULL
The second argument passed to the callback() function is the callout data that was passed to pcre2_callout_enumerate(). The callback() 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 pcre2_callout_enumerate().
β οΈ Important vibe check: "must return zero for success" is not a suggestion, bestie. Return zero if you want the scan to keep going. Return anything else and the whole pattern scan stops, and that value becomes the result of pcre2_callout_enumerate(). No cap.
There is a complete description of the PCRE2 native API in the pcre2api page and a description of the POSIX API in the pcre2posix page. Go read those if you want the full deep lore π¦
That's the whole page, bestie! This was PCRE2 10.47, dated 23 March 2017. Stay hydrated, read your manpages, and slay your regexes π π
π¦ where this page comes from
- fedora 43: pcre2-devel 10.47-1.fc43 Β· BSD-3-Clause AND FSFULLR AND X11 AND GPL-2.0-or-later AND FSFAP AND FSFUL AND GPL-3.0-or-later
- fedora 43: pcre2-devel 10.47-1.fc43 Β· BSD-3-Clause AND FSFULLR AND X11 AND GPL-2.0-or-later AND FSFAP AND FSFUL AND GPL-3.0-or-later
- fedora 44: pcre2-devel 10.47-1.fc44.1 Β· BSD-3-Clause AND FSFULLR AND X11 AND GPL-2.0-or-later AND FSFAP AND FSFUL AND GPL-3.0-or-later
- fedora 44: pcre2-devel 10.47-1.fc44.1 Β· BSD-3-Clause AND FSFULLR AND X11 AND GPL-2.0-or-later AND FSFAP AND FSFUL AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms