str = 'foo' # String#=~、Regexp#=~。マッチした位置かnilを返す str =~ /o/ #=> 1 /o/ =~ str #=> 1 # String#match、Regexp#match。MatchDataかnilを返す str.match /o/ #=> <MatchData "o"> /o/.match str #=> <MatchData "o"> # Regexp#===。trueかfalseを返す /o/ === str #=> true 単にマッチするかどうかを判定したいだけならRegexp#===を使いましょうってパーフェクトRubyに書いてあったので、その場合はRegexp#===を使えばいいと思うけど、=~やmatchと違って===は右辺と左辺が変わると結果が変わるので注意が必要。