# Match with string instead of regexp fails

**URL:** <https://www.ruby-forum.com/t/match-with-string-instead-of-regexp-fails/71825>\
**Category:** Ruby\
**Created:** [October 11, 2006, 7:01pm UTC](https://www.ruby-forum.com/t/match-with-string-instead-of-regexp-fails/71825 "2006-10-11T19:01:13Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [October 11, 2006, 7:01pm UTC](https://www.ruby-forum.com/t/match-with-string-instead-of-regexp-fails/71825/1 "2006-10-11T19:01:13Z")

</div>

According to the 1.8.5 core API:

str =~ obj =\> fixnum or nil

Match. If obj is a Regexp, use it as a pattern to match against str. If  
obj is a String, look for it in str (similar to String#index). Returns  
the position the match starts, or nil if there is no match.

So I expect “cat” =~ “a” #=\> 1

But:

irb(main):013:0\> RUBY\_VERSION  
=\> “1.8.5”  
irb(main):014:0\> “cat” =~ “a”  
TypeError: type mismatch: String given  
from (irb):14:in `=~’  
from (irb):14  
from :0

An undocumented change? Sorry if this has come up before, I did try to  
find out. Thx - m.

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [October 11, 2006, 9:08pm UTC](https://www.ruby-forum.com/t/match-with-string-instead-of-regexp-fails/71825/2 "2006-10-11T21:08:59Z")

</div>

On 10/11/06, matt neuburg [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> But:  
> find out. Thx - m.  
> In the CVS [1] there’s a new documentation omitting the ‘string’  
> clause, so I suppose it’s a documentation error.

If you know a bit of C you can see for yourself.

From the CVS history - the TypeError was added around 1.8.2, so it’s  
there pretty long.

The doc was fixed between 1.8.5-pre1 and 1.8.5-pre2. Form that it  
seems that the docs on ruby-doc are rather old, and not exactly 1.8.5  
ones as they say…

[1]  
[http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/string.c?rev=1.182.2.53;content-type=text%2Fplain](http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/string.c?rev=1.182.2.53;content-type=text%2Fplain)

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [October 11, 2006, 10:41pm UTC](https://www.ruby-forum.com/t/match-with-string-instead-of-regexp-fails/71825/3 "2006-10-11T22:41:26Z")

</div>

Jan S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > An undocumented change? Sorry if this has come up before, I did try to  
> > The doc was fixed between 1.8.5-pre1 and 1.8.5-pre2. Form that it  
> > seems that the docs on ruby-doc are rather old, and not exactly 1.8.5  
> > ones as they say…
> 
> [1] [http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/string.c?rev=1.182.2.53](http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/string.c?rev=1.182.2.53);  
> content-type=text%2Fplain

Excellent, thanks. m.
