REGEXP * const rx,
char* stringarg,
char* strend, char* strbeg,
- I32 minend, SV* screamer,
+ SSize_t minend, SV* sv,
void* data, U32 flags);
char* (*intuit) (pTHX_
REGEXP * const rx, SV *sv,
other engines have to.
The C<flags> parameter is a bitfield which indicates which of the
-C<msixp> flags the regex was compiled with. It also contains
+C<msixpn> flags the regex was compiled with. It also contains
additional info, such as if C<use locale> is in effect.
The C<eogc> flags are stripped out before being passed to the comp
=item Character set
-The character set semantics are determined by an enum that is contained
+The character set rules are determined by an enum that is contained
in this field. This is still experimental and subject to change, but
the current interface returns the rules by use of the in-line function
C<get_regex_charset(const U32 flags)>. The only currently documented
I32 exec(pTHX_ REGEXP * const rx,
char *stringarg, char* strend, char* strbeg,
- I32 minend, SV* screamer,
+ SSize_t minend, SV* sv,
void* data, U32 flags);
Execute a regexp. The arguments are
The regular expression to execute.
-=item screamer
+=item sv
-This strangely-named arg is the SV to be matched against. Note that the
+This is the SV to be matched against. Note that the
actual char array to be matched against is supplied by the arguments
described below; the SV is just used to determine UTF8ness, C<pos()> etc.
=item strend
Pointer to the character following the physical end of the string (i.e.
-the C<\0>).
+the C<\0>, if any).
=item stringarg
=head2 Numbered capture callbacks
Called to get/set the value of C<$`>, C<$'>, C<$&> and their named
-equivalents, ${^PREMATCH}, ${^POSTMATCH} and $^{MATCH}, as well as the
+equivalents, ${^PREMATCH}, ${^POSTMATCH} and ${^MATCH}, as well as the
numbered capture groups (C<$1>, C<$2>, ...).
The C<paren> parameter will be C<1> for C<$1>, C<2> for C<$2> and so
behave in the same situation:
package CaptureVar;
- use base 'Tie::Scalar';
+ use parent 'Tie::Scalar';
sub TIESCALAR { bless [] }
sub FETCH { undef }
* matching*/
U32 lastparen; /* highest close paren matched ($+) */
U32 lastcloseparen; /* last close paren matched ($^N) */
- regexp_paren_pair *swap; /* Swap copy of *offs */
regexp_paren_pair *offs; /* Array of offsets for (@-) and
(@+) */
=head2 C<mother_re>
-TODO, see L<http://www.mail-archive.com/perl5-changes@perl.org/msg17328.html>
+TODO, see commit 28d8d7f41a.
=head2 C<extflags>
=head2 C<nparens>, C<lastparen>, and C<lastcloseparen>
-These fields are used to keep track of how many paren groups could be matched
-in the pattern, which was the last open paren to be entered, and which was
-the last close paren to be entered.
+These fields are used to keep track of: how many paren capture groups
+there are in the pattern; which was the highest paren to be closed (see
+L<perlvar/$+>); and which was the most recent paren to be closed (see
+L<perlvar/$^N>).
=head2 C<intflags>
C<regexp_internal> structure (see L<perlreguts/Base Structures>) but a custom
engine should use something else.
-=head2 C<swap>
-
-Unused. Left in for compatibility with Perl 5.10.0.
-
=head2 C<offs>
A C<regexp_paren_pair> structure which defines offsets into the string being
If C<< ->offs[num].start >> or C<< ->offs[num].end >> is C<-1> then that
capture group did not match.
C<< ->offs[0].start/end >> represents C<$&> (or
-C<${^MATCH}> under C<//p>) and C<< ->offs[paren].end >> matches C<$$paren> where
+C<${^MATCH}> under C</p>) and C<< ->offs[paren].end >> matches C<$$paren> where
C<$paren >= 1>.
=head2 C<precomp> C<prelen>
The number of times the structure is referenced. When
this falls to 0, the regexp is automatically freed
-by a call to pregfree. This should be set to 1 in
+by a call to C<pregfree>. This should be set to 1 in
each engine's L</comp> routine.
=head1 HISTORY