Public bug reported: Binary package hint: php5
This regular expression: /^(?:[^\[\]{}']+|'[^']*')+:(?:[^\[\]{}']+|'[^']*')+$/ matches this string: a:bbbbbbbbbbbbbbb in Perl (5.10.0-24ubuntu4): perl <<__END__ print 'a:bbbbbbbbbbbbb' =~ q/^(?:[^\[\]{}']+|'[^']*')+:(?:[^\[\]{}']+|'[^']*')+$/; print "\n"; __END__ 1 and pcretest (libpcre3 7.8-3): pcretest <<__END__ /^(?:[^\[\]{}']+|'[^']*')+:(?:[^\[\]{}']+|'[^']*')+$/ a:bbbbbbbbbbbbbbb __END__ PCRE version 7.8 2008-09-05 re> data> 0: a:bbbbbbbbbbbbbbb data> Not, however, in PHP (php5-common 5.2.10.dfsg.1-2ubuntu6.4): php <<__END__ <?= preg_match("/^(?:[^\[\]{}']+|'[^']*')+:(?:[^\[\]{}']+|'[^']*')+$/", "a:bbbbbbbbbbbbb") ?> __END__ 0 The bug is pretty sensible to changes in the input. Removing a couple of "b"s makes it match. I don't know which aspects of the regexp cause it to fail. For confirmation that this is indeed a bug without having to decypher the regexp, here's proof: <?php $A='(?:[^\[\]{}\']+|\'[^\']*\')+'; $a= 'a'; $B=":$A"; $b= ':bbbbbbbbbbbbbbb'; print_r(preg_match("/^$A$/", "$a")); print_r(preg_match("/^$B$/", "$b")); print_r(preg_match("/^$A$B$/", "$a$b")); print_r("\n"); This outputs "110", which is impossible since if /^$A$/ matches "$a" and /^$B$/ matches "$b", /^$A$B$/ should definitely match "$a$b". I tried reporting this upstream, but bugs.php.net doesn't allow reporting bugs for versions earlier than 5.2.13. ProblemType: Bug Architecture: i386 Date: Sat Apr 17 19:11:27 2010 DistroRelease: Ubuntu 9.10 NonfreeKernelModules: nvidia wl Package: php5-common 5.2.10.dfsg.1-2ubuntu6.4 ProcEnviron: LANGUAGE=ca_ES.UTF-8 PATH=(custom, user) LANG=ca_ES.UTF-8 SHELL=/bin/bash ProcVersionSignature: Ubuntu 2.6.31-20.58-generic SourcePackage: php5 Uname: Linux 2.6.31-20-generic i686 ** Affects: php5 (Ubuntu) Importance: Undecided Status: New ** Tags: apport-bug i386 -- PHP preg_match doesn't match matching string https://bugs.launchpad.net/bugs/565481 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs