String#matchの正規表現にマッチした物が無い時に特殊変数に入る値について
文字列をマッチさせて数値に変換する時に
'10'.match(/(100)/){ $1 } # => nil
なので、to_i
をつければ0
を返してくるかと思ったのですが、変わらずnil
を返してきます。
'10'.match(/(100)/){ $1.to_i } # => nil
不思議だったのでクラス名を取ろうと思ったのですが
'10'.match(/(100)/){ p $1.class } # => nil
でも何も返ってきません。
正規表現でマッチした値を返す $1
などの特殊変数はどう規定されていて
どこのドキュメントに振る舞いが書かれているのでしょうか?