Hello,

Yes, you are right.
The behaviour described in the manual has been changed in PERL 5.8 and then in pcre 4.


I'll investigate this issue further and update the documentation.

Thanks for your report,
Nuno Lopes

P.S.: please report any further issues to our bug tracking software at http://bugs.php.net



----- Original Message -----
I think I found the mistake in documentation
PHP->PCRE->Pattern Syntax->Internal option setting.
(http://cz2.php.net/manual/cs/pcre.pattern.syntax.php)

I disagree with:
---
"For settings that are outside any subpattern (defined below), the effect is the same as if the options were set or unset at the sta
rt of matching. The following patterns all behave in exactly the same way:


      (?i)abc
      a(?i)bc
      ab(?i)c
      abc(?i)

which in turn is the same as compiling the pattern abc with PCRE_CASELESS set. "
---


My examples:
$re="/ab(?i)c/";
$str="AbC";
$result=preg_match($re,$str,$regs); //returns 0 - no match

$re="/abc/i";
$str="AbC";
$result=preg_match($re,$str,$regs); //returns 1 - match

It looks like internal modifier operates only right from the position where it is used.
(So it works as if the whole pattern would be the top-level subpattern.)


Do you agree with me? ..or it is only my misapprehension?
I use PHP 4.3.3 (Win).

Thank you for your anser.

Miroslav Pecka

Reply via email to