upcaseの取り扱いがまずかったので,全面的に挙動を変えた.
もっと高度な判定を行うことにした.