うん、まあ、とりあえず、警告を読む努力はしてみてくれ
わけわからん警告も確かに多いんだが、最初からどうせわけわからんのだろうと放棄されるとちょっと寂しい

> warning: regex literal in condition

ということで、ふつうの正規表現リテラルをマッチ先省略表記で書くことはできない

irb> while gets; print if /\d/ end
(irb):1: warning: regex literal in condition
1
1
irb> while str=gets; print if str =~ /\d/ end
1
1

あと、Rubyにおいて $_ を利用した省略の書き方は全く行なわれない
きちんとローカル変数に代入しておくことを強く推奨