def parse(str) name, *words = str.split words = words.join(' ').downcase case name when "digi" return true if words =~ /nyo[^a-zA-Z0-9]{0,3}$/ when "petit" return true if words =~ /nyu[^a-zA-Z0-9]{0,3}$/ when "rabi" return true if words =~ /[a-zA-Z0-9]/ when "gema" return true if words =~ /gema[^a-zA-Z0-9]{0,3}$/ when "piyo" return true if words =~ /pyo[^a-zA-Z0-9]{0,3}$/ end false end while row = gets&.chomp break if row.empty? if parse(row) puts "CORRECT (maybe)" else puts "WRONG!" end end