Вы применяете отрицание !
слишком рано:
if (!(/([0-9]).*?\1/)).match?(i)
, поэтому сначала вы отрицаете регулярное выражение (по какой-то причине верно), а затем пытаетесь вызвать match
для true
value
Используйте вместо:
if !(/([0-9]).*?\1/.match?(i))
или даже
if !/([0-9]).*?\1/.match?(i)