> I recently encountered a strange behaviour, could someone please > countercheck it, to either tell me there is an error in my pattern? > > I have a test string: "7005-N/52" > I have two match patterns: a) "/([0-9]*)\/(.*)/i" > b) "/([0-9]*)\-(.*)/i" > I check the test string with the help of preg_match, and they both > matched, but normally variant a) shouldn't have matched. > > Normally I test my patterns with the tool "The Regex Coach", and > according to this tool it shouldn't have matched. > PHP version is 5.0.4, PCRE extension version is 4.5 01-December-2003 Hi Jens Your first pattern 'matches' because it finds a hit on the "/52" component of your test string. If you look at the pattern itself, it's because you're using the 'zero-or-more-occurrences' quantifier (ie "*") in the first part of your pattern: "([0-9]*)". It's a valid hit, because there are zero incidences of numeric characters immediately prior to the "/52" component of the test string. Changing the "*" to a "+" (at least one or more occurrences) could 'fix' that pattern (ie so that it doesn't match your string), depending on any other values being tested by it. Much warmth, Murray --- "Lost in thought..." http://www.planetthoughtful.org -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php