# Oddity with RegExp

**URL:** <https://www.ruby-forum.com/t/oddity-with-regexp/111022>\
**Category:** Ruby\
**Created:** [August 2, 2007, 12:04am UTC](https://www.ruby-forum.com/t/oddity-with-regexp/111022 "2007-08-02T00:04:12Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![russellf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7bcc69/32.png) [@russellf](https://www.ruby-forum.com/u/russellf)\
**Post date:** [August 2, 2007, 12:04am UTC](https://www.ruby-forum.com/t/oddity-with-regexp/111022/1 "2007-08-02T00:04:12Z")

</div>

I’m clearly missing something! I have a log analysis application that  
is written in Ruby and which uses REs to decide how to process log  
records.

I entered a pattern into one of my rules and it always failed to match  
so I fired up irb and set about reducing the pattern to something  
minimal:

[rful011@pateke selms-svn]$ irb  
irb(main):001:0\> a = ‘NT AUTHORITY\SYSTEM’  
=\> “NT AUTHORITY\SYSTEM”  
irb(main):004:0\> a =~ /AUTHORITY/  
=\> 3  
irb(main):005:0\> a =~ /NT AUTHORITY/  
=\> 0  
irb(main):006:0\> a =~ / AUTHORITY/  
=\> 2  
irb(main):007:0\> a =~ /^NT /  
=\> 0  
irb(main):008:0\> a =~ /NT /  
=\> 0  
irb(main):009:0\> a =~ /NT/  
=\> 0  
irb(main):010:0\> a =~ /N/  
=\> 0  
irb(main):011:0\> a =~ /T/  
=\> 1

Is the ‘’ in the string upsetting things?

Cheers and thanks,

Russell

---

<div class="post-metadata">

**Author:** ![russellf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7bcc69/32.png) [@russellf](https://www.ruby-forum.com/u/russellf)\
**Post date:** [August 2, 2007, 12:12am UTC](https://www.ruby-forum.com/t/oddity-with-regexp/111022/2 "2007-08-02T00:12:33Z")

</div>

Russell,

> =\> “NT AUTHORITY\SYSTEM”  
> irb(main):009:0\> a =~ /NT/  
> =\> 0  
> irb(main):010:0\> a =~ /N/  
> =\> 0  
> irb(main):011:0\> a =~ /T/  
> =\> 1
> 
> Is the ‘’ in the string upsetting things?

```
No, you are just misinterpreting the results.

```

irb(main):001:0\> a = ‘NT AUTHORITY\SYSTEM’  
=\> “NT AUTHORITY\SYSTEM”  
irb(main):002:0\> a =~ /N/  
=\> 0  
irb(main):003:0\> a =~ /X/  
=\> nil

```
Zero is a valid string index, nil is not.

- Warren B.
```

---

<div class="post-metadata">

**Author:** ![russellf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7bcc69/32.png) [@russellf](https://www.ruby-forum.com/u/russellf)\
**Post date:** [August 2, 2007, 12:12am UTC](https://www.ruby-forum.com/t/oddity-with-regexp/111022/3 "2007-08-02T00:12:33Z")

</div>

Russell F. wrote:

> =\> “NT AUTHORITY\SYSTEM”  
> irb(main):009:0\> a =~ /NT/  
> =\> 0  
> irb(main):010:0\> a =~ /N/  
> =\> 0  
> irb(main):011:0\> a =~ /T/  
> =\> 1  
> I’m not sure what you’re expecting here - all these patterns are  
> matching. Have you got a failing pattern?

---

<div class="post-metadata">

**Author:** ![russellf](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7bcc69/32.png) [@russellf](https://www.ruby-forum.com/u/russellf)\
**Post date:** [August 2, 2007, 1:13am UTC](https://www.ruby-forum.com/t/oddity-with-regexp/111022/4 "2007-08-02T01:13:23Z")

</div>

Warren B. wrote:

> ```
> Zero is a valid string index, nil is not.
> 
> ```

Thanks Warren! Like I said I was clearly missing something. I blame my  
perl heritage 😉

Russell
