// CalloutBlock contains the data passed to callout functions
typeCalloutBlockstruct{
// Version contains the version number of the block format.
// The current version is 2.
Versionuint32
// CalloutNumber contains the number of the callout, in the range 0-255.
// This is the number that follows "?C". For callouts with string arguments,
// this will always be zero.
CalloutNumberuint32
// CaptureTop contains the number of the highest numbered substring
// captured so far plus one. If no substrings have yet been captured,
// CaptureTop will be set to 1.
CaptureTopuint32
// CaptureLast contains the number of the last substring that was captured.
CaptureLastuint32
// Substrings contains all of the substrings captured so far.
Substrings[]string
Markstring
// Subject contains the string passed to the match function.
Subjectstring
// StartMatch contains the offset within the subject at which the current match attempt started.
StartMatchuint
// CurrentPosition contains the offset of the current match pointer within the subject.
CurrentPositionuint
// PatternPosition contains the offset within the pattern string to the next item to be matched.
PatternPositionuint
// NextItemLength contains the length of the next item to be processed in the pattern string.
NextItemLengthuint
// CalloutStringOffset contains the code unit offset to the start of the callout argument string within the original pattern string.
CalloutStringOffsetuint
// CalloutString is the string for the callout. For numerical callouts, this will always be empty.
CalloutStringstring
// CalloutFlags contains the following flags:
// CalloutStartMatch
// This is set for the first callout after the start of matching for each new starting position in the subject.
// CalloutBacktrack
// This is set if there has been a matching backtrack since the previous callout, or since the start of matching if this is the first callout from a pcre2_match() run.
//
// Both bits are set when a backtrack has caused a "bumpalong" to a new starting position in the subject.