Hi ruby experts! Is this intended behaviour? irb(main):001:0> s1='a=1' => "a=1" irb(main):002:0> s2='b=1' => "b=1" irb(main):003:0> s1 =~ /a|b=(.)/ => 0 <------ expression matches irb(main):004:0> $1 => nil <------ but where is argument? irb(main):005:0> s2 =~ /a|b=(.)/ => 0 <------ expression matches irb(main):006:0> $1 => "1" <------ this has been expected irb(main):007:0> s1 =~ /(a|b)=(.)/ => 0 <------ expression matches irb(main):012:0> $2 => "1" <------ this has been expected Tested on ruby 1.8.2 (2004-12-22) [i686-linux] Thanks for your help in advance Martin.