Clarify semantics of the POSIX wrapper.

This commit is contained in:
Philip.Hazel 2015-09-03 15:53:14 +00:00
parent 56b8632771
commit 6119920f26
2 changed files with 23 additions and 15 deletions

View File

@ -1,4 +1,4 @@
.TH PCRE2POSIX 3 "20 October 2014" "PCRE2 10.00" .TH PCRE2POSIX 3 "03 September 2015" "PCRE2 10.21"
.SH NAME .SH NAME
PCRE2 - Perl-compatible regular expressions (revised API) PCRE2 - Perl-compatible regular expressions (revised API)
.SH "SYNOPSIS" .SH "SYNOPSIS"
@ -145,7 +145,7 @@ use the contents of the \fIpreg\fP structure. If, for example, you pass it to
This area is not simple, because POSIX and Perl take different views of things. This area is not simple, because POSIX and Perl take different views of things.
It is not possible to get PCRE2 to obey POSIX semantics, but then PCRE2 was It is not possible to get PCRE2 to obey POSIX semantics, but then PCRE2 was
never intended to be a POSIX engine. The following table lists the different never intended to be a POSIX engine. The following table lists the different
possibilities for matching newline characters in PCRE2: possibilities for matching newline characters in Perl and PCRE2:
.sp .sp
Default Change with Default Change with
.sp .sp
@ -155,7 +155,7 @@ possibilities for matching newline characters in PCRE2:
$ matches \en in middle no PCRE2_MULTILINE $ matches \en in middle no PCRE2_MULTILINE
^ matches \en in middle no PCRE2_MULTILINE ^ matches \en in middle no PCRE2_MULTILINE
.sp .sp
This is the equivalent table for POSIX: This is the equivalent table for a POSIX-compatible pattern matcher:
.sp .sp
Default Change with Default Change with
.sp .sp
@ -165,13 +165,17 @@ This is the equivalent table for POSIX:
$ matches \en in middle no REG_NEWLINE $ matches \en in middle no REG_NEWLINE
^ matches \en in middle no REG_NEWLINE ^ matches \en in middle no REG_NEWLINE
.sp .sp
PCRE2's behaviour is the same as Perl's, except that there is no equivalent for This behaviour is not what happens when PCRE2 is called via its POSIX
PCRE2_DOLLAR_ENDONLY in Perl. In both PCRE2 and Perl, there is no way to stop API. By default, PCRE2's behaviour is the same as Perl's, except that there is
newline from matching [^a]. no equivalent for PCRE2_DOLLAR_ENDONLY in Perl. In both PCRE2 and Perl, there
is no way to stop newline from matching [^a].
.P .P
The default POSIX newline handling can be obtained by setting PCRE2_DOTALL and Default POSIX newline handling can be obtained by setting PCRE2_DOTALL and
PCRE2_DOLLAR_ENDONLY, but there is no way to make PCRE2 behave exactly as for PCRE2_DOLLAR_ENDONLY when calling \fBpcre2_compile()\fP directly, but there is
the REG_NEWLINE action. no way to make PCRE2 behave exactly as for the REG_NEWLINE action. When using
the POSIX API, passing REG_NEWLINE to PCRE2's \fBregcomp()\fP function
causes PCRE2_MULTILINE to be passed to \fBpcre2_compile()\fP, and REG_DOTALL
passes PCRE2_DOTALL. There is no way to pass PCRE2_DOLLAR_ENDONLY.
. .
. .
.SH "MATCHING A PATTERN" .SH "MATCHING A PATTERN"
@ -263,6 +267,6 @@ Cambridge, England.
.rs .rs
.sp .sp
.nf .nf
Last updated: 20 October 2014 Last updated: 03 September 2015
Copyright (c) 1997-2014 University of Cambridge. Copyright (c) 1997-2015 University of Cambridge.
.fi .fi

View File

@ -1,4 +1,4 @@
.TH PCRE2TEST 1 "30 August 2015" "PCRE 10.21" .TH PCRE2TEST 1 "03 September 2015" "PCRE 10.21"
.SH NAME .SH NAME
pcre2test - a program for testing Perl-compatible regular expressions. pcre2test - a program for testing Perl-compatible regular expressions.
.SH SYNOPSIS .SH SYNOPSIS
@ -667,8 +667,12 @@ suite.
.sp .sp
The \fB/posix\fP modifier causes \fBpcre2test\fP to call PCRE2 via the POSIX The \fB/posix\fP modifier causes \fBpcre2test\fP to call PCRE2 via the POSIX
wrapper API rather than its native API. This supports only the 8-bit library. wrapper API rather than its native API. This supports only the 8-bit library.
When the POSIX API is being used, the following pattern modifiers set options Note that it does not imply POSIX matching semantics; for more detail see the
for the \fBregcomp()\fP function: .\" HREF
\fBpcre2posix\fP
.\"
documentation. When the POSIX API is being used, the following pattern
modifiers set options for the \fBregcomp()\fP function:
.sp .sp
caseless REG_ICASE caseless REG_ICASE
multiline REG_NEWLINE multiline REG_NEWLINE
@ -1453,6 +1457,6 @@ Cambridge, England.
.rs .rs
.sp .sp
.nf .nf
Last updated: 30 August 2015 Last updated: 03 September 2015
Copyright (c) 1997-2015 University of Cambridge. Copyright (c) 1997-2015 University of Cambridge.
.fi .fi