С ruby-doc :
str =~ obj => fixnum or nil
Match - если obj является регулярным выражением, используйте его как шаблон для сопоставления с str и возвращает позицию смещения, с которой начинается совпадение, или nil, если совпадения нет. В противном случае вызывает obj. = ~, Передавая str в качестве аргумента. Значение по умолчанию = ~ в Object возвращает false.
"cat o' 9 tails" =~ /\d/ #=> 7
"cat o' 9 tails" =~ 9 #=> false