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