Here is that bug / feature.I have no idea why ASH was coded that way. heeheehee recently noted it with bemusement. I also have no idea how many scripts exist that depend on that - perhaps comparing user input vs. strings in the script is better, but there is no reason that comparing strings in the script with item names, monster names, etc. should depend on inexact comparisons. Perhaps we should start a Bug/Feature to discuss the implications of changing ASH string equality to be case sensitive, since that would allow scripts to do things with KoL page text that it can't do right now. We certainly would have to augment the Runtime Library with case-sensitive and case-insensitive string matching functions, just like Java has.
I'm not totally sure I understand why we'd need to add case-insensitive string matching functions, and all that. We have to_lower_case(), and Java requires String.equals because the String class is required to invoke methods on strings.
aside: it's really awkward, in my opinion, that it has that weird separation between Objects and primitives (several modern languages have adopted the "everything is a class" mantra, which at times makes more sense), and doubly weird that it has special wrapper classes for the various numeric primitive types but not for Strings, but whatever.