text = '私の誕生日は1977年7月17日です。'
m = /(\d+)年(\d+)月(\d+)日/.match(text)
m[1] #=> "1977"
m[2] #=> "7"
m[3] #=> "17"

# ----------------------------------------

/(\d+)年(\d+)月(\d+)日/.match(text) #=> #<MatchData "1977年7月17日" 1:"1977" 2:"7" 3:"17">
/(\d+)年(\d+)月(\d+)日/.match('foo') #=> nil

# ----------------------------------------

text = '私の誕生日は1977年7月17日です。'
# 真偽値の判定とローカル変数への代入を同時にやってしまう
if m = /(\d+)年(\d+)月(\d+)日/.match(text)
  # マッチした場合の処理（ローカル変数のmを使う）
else
  # マッチしなかった場合の処理
end

# ----------------------------------------

text = '私の誕生日は1977年7月17日です。'
m = /(\d+)年(\d+)月(\d+)日/.match(text)
# マッチした部分全体を取得する
m[0]    #=> "1977年7月17日"

# キャプチャの1番目を取得する
m[1]    #=> "1977"

# キャプチャの2番目から2個取得する
m[2, 2] #=> ["7", "17"]

# 最後のキャプチャを取得する
m[-1]   #=> "17"

# Rangeを使って取得する
m[1..3] #=> ["1977", "7", "17"]

# ----------------------------------------

text = '私の誕生日は1977年7月17日です。'
m = text.match(/(\d+)年(\d+)月(\d+)日/) #=> #<MatchData "1977年7月17日" 1:"1977" 2:"7" 3:"17">
