>if c in ['A'..'Z', 'a'..'z', '0'..'9'] then
これは文字cが半角英数かどうかって事ね。
文字列全体ならループまわして判定。