# Regex question

**URL:** <https://www.ruby-forum.com/t/regex-question/180492>\
**Category:** Ruby\
**Created:** [December 20, 2009, 10:40am UTC](https://www.ruby-forum.com/t/regex-question/180492 "2009-12-20T10:40:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![katz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/ee7513/32.png) [@katz](https://www.ruby-forum.com/u/katz)\
**Post date:** [December 20, 2009, 10:40am UTC](https://www.ruby-forum.com/t/regex-question/180492/1 "2009-12-20T10:40:00Z")

</div>

```auto
irb(main):113:0> /l{2}x/ =~ 'llx'
=> 0
irb(main):109:0> /(lo){2}/ =~ 'lolo'
=> 0
irb(main):110:0> /(lo){2}x/ =~ 'lolox'
=> nil
irb(main):111:0> /(?:lo){2}x/ =~ 'lolox'
=> 0
```

Note the third command returned nil but the fourth worked, any ideas?

```auto
$ ruby -v
ruby 1.9.1p376 (2009-12-07 revision 26041) [i686-linux]
```

---

<div class="post-metadata">

**Author:** ![katz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/ee7513/32.png) [@katz](https://www.ruby-forum.com/u/katz)\
**Post date:** [December 20, 2009, 11:05am UTC](https://www.ruby-forum.com/t/regex-question/180492/2 "2009-12-20T11:05:48Z")

</div>

Katz Bo wrote:

> Note the third command returned nil but the fourth worked, any ideas?
> 
> ```auto
> $ ruby -v
> > ruby 1.9.1p376 (2009-12-07 revision 26041) [i686-linux]
> ```

irb(main):001:0\> /(lo){2}x/ =~ ‘lolox’  
=\> 0  
irb(main):002:0\> RUBY\_VERSION  
=\> “1.8.7”

---

<div class="post-metadata">

**Author:** ![katz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/ee7513/32.png) [@katz](https://www.ruby-forum.com/u/katz)\
**Post date:** [December 20, 2009, 11:49am UTC](https://www.ruby-forum.com/t/regex-question/180492/3 "2009-12-20T11:49:06Z")

</div>

On Sun, Dec 20, 2009 at 10:05 AM, W. James [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > =\> 0  
> > [/code]
> > 
> > Note the third command returned nil but the fourth worked, any ideas?

Seems like a bug.

irb(main):110:0\> /(lo){2,3}x/ =~ ‘lolox’  
irb(main):110:0\> /(lo){1,2}x/ =~ ‘lolox’  
irb(main):110:0\> /(lo){2,}x/ =~ ‘lolox’  
irb(main):110:0\> /(lo){,2}x/ =~ ‘lolox’

all work for me on ruby 1.9.1p243 (2009-07-16 revision 24175)  
[i386-mingw32]

It’s just {2} that doesn’t work.

–  
Paul S.  
[http://www.nomadicfun.co.uk](http://www.nomadicfun.co.uk)

removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![katz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/ee7513/32.png) [@katz](https://www.ruby-forum.com/u/katz)\
**Post date:** [December 20, 2009, 12:30pm UTC](https://www.ruby-forum.com/t/regex-question/180492/4 "2009-12-20T12:30:21Z")

</div>

Paul S. wrote:

> Seems like a bug.
> 
> It’s just {2} that doesn’t work.

Same for me. I actually had tried what you tried too. Also, {2,2} won’t  
work either.

---

<div class="post-metadata">

**Author:** ![katz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/ee7513/32.png) [@katz](https://www.ruby-forum.com/u/katz)\
**Post date:** [December 20, 2009, 1:45pm UTC](https://www.ruby-forum.com/t/regex-question/180492/5 "2009-12-20T13:45:34Z")

</div>

On 20.12.2009 12:37, Katz Bo wrote:

> Katz Bo wrote:
> 
> > Same for me. I actually had tried what you tried too. Also, {2,2} won’t  
> > work either.
> 
> Sorry for double posting, post too quick.  
> Yet another thing is, {1} works:
> 
> /(lo){1}x/ =~ ‘lololox’ # =\> 4  
> /(lo){2}x/ =~ ‘lololox’ # =\> nil  
> /(lo){3}x/ =~ ‘lololox’ # =\> nil

That’s definitively a bug! =\> [http://redmine.ruby-lang.org/](http://redmine.ruby-lang.org/)

Kind regards

robert

---

<div class="post-metadata">

**Author:** ![katz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/ee7513/32.png) [@katz](https://www.ruby-forum.com/u/katz)\
**Post date:** [December 20, 2009, 12:37pm UTC](https://www.ruby-forum.com/t/regex-question/180492/6 "2009-12-20T12:37:41Z")

</div>

Katz Bo wrote:

> Same for me. I actually had tried what you tried too. Also, {2,2} won’t  
> work either.

Sorry for double posting, post too quick.  
Yet another thing is, {1} works:

/(lo){1}x/ =~ ‘lololox’ # =\> 4  
/(lo){2}x/ =~ ‘lololox’ # =\> nil  
/(lo){3}x/ =~ ‘lololox’ # =\> nil
