From: Wilson Bilkovich Date: 2006-12-07T07:44:22+09:00 Subject: Re: Why is this regex invalid? On 12/6/06, Daniel Finnie wrote: > irb(main):002:0> regex = /([0-9]*)([^\+- ]+)(.*)/ > SyntaxError: compile error > (irb):2: invalid regular expression: /([0-9]*)([^\+- ]+)(.*)/ > from (irb):2 > > irb(main):003:0> regex = /([0-9]*)([^\+ -]+)(.*)/ > => /([0-9]*)([^\+ -]+)(.*)/ > > The only thing that it different in the 2 regexps is the placement of > the space in the square brackets, yet the first regexp is invalid and > the 2nd valid. > The hyphen in the middle expression is ambiguous, because it could either be a range or a literal. One way is to rearrange the order so that it comes first: /([0-9]*)([^-+ ]+)(.*)/