ID:               40195
 Updated by:       [EMAIL PROTECTED]
 Reported By:      tsasaki99 at yahoo dot co dot jp
-Status:           Assigned
+Status:           Closed
 Bug Type:         PCRE related
 Operating System: Debian GNU/Linux etch
 PHP Version:      5.2.0
 Assigned To:      andrei
 New Comment:

bundled pcre upgrade to version 7.0.


Previous Comments:
------------------------------------------------------------------------

[2007-01-22 21:43:20] [EMAIL PROTECTED]

I confirm this is a bug in pcre. so let's ask Andrei to upgrade PCRE to
version 7, maybe for PHP 5.2.2 (assign back to me if you want me to do
it).

------------------------------------------------------------------------

[2007-01-22 14:59:41] tsasaki99 at yahoo dot co dot jp

Description:
------------
PCRE (Perl Compatible Regular Expression library) Version 6.7 04-Jul-06
seems to have a bug. This version is included in PHP 5.2 and PHP 6.
Consequently preg_match() function in PHP seems to inherit the bug. The
main issue is summarized as follows.

    * case1 ^(/([a-z]*))*$ matches //abcde
    * case2 ^(/(?:[a-z]*))*$ doesn't match //abcde
    * case3 ^(/([a-z]*))*$ matches /a/abcde
    * case4 ^(/(?:[a-z]*))*$ matches /a/abcde 

The second regex should match. Not only PHP 5 but also PHP 6 CVS
snapshot still includes PCRE version 6.7 04-Jul-06. So, I report the
issue.

The complete report and examination results are in
http://geeklog.windy.cx/article.php/20070122224722545

Reproduce code:
---------------
preg_match("@^(/(?:[a-z]*))*$@", "//abcde", &$m);
var_dump($m);

Expected result:
----------------
array(2) {
  [0]=>
  string(7) "//abcde"
  [1]=>
  string(6) "/abcde"
}


Actual result:
--------------
array(0) {
}



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=40195&edit=1

Reply via email to