- From: Michel Fortin <michel.fortin@michelf.com>
- Date: Tue, 4 Apr 2006 13:06:31 -0400
Le 3 avr. 2006 ? 19:33, Dean Edwards a ?crit : > Michel Fortin wrote: > >> Does that mean that a pattern attribute like "foo|bar" should >> translate to /^foo|bar$/ ? Wouldn't it make more sense it it was /^ >> (foo|bar)$/ with the parentesis? > > You have a point. Would implied parentheses cause any side effects? > None that I can think of... Now that you mention it, it could. With a pattern like this: "(.).*\1" which simply indicates that the first and the last characters must be the same, reference numbers won't refer to the right part. When the pattern get transformed to this: /^((.).*\1)$/ it makes `\1` a reference to the whole input text (the first parenthesis) rather than the first character (which has become the second parenthesis). This is not good. So we will need to use a non-matching group `(?: ... )` instead: /^(?:(.).*\1)$/ Problem solved. Michel Fortin michel.fortin at michelf.com http://www.michelf.com/
Received on Tuesday, 4 April 2006 10:06:31 UTC