In CL, symbols aren't really case insensitive, just by default (readtable-case *readtable*) is :UPCASE, which means that a symbol's name is upcased upon reading. Comparison of symbol names is case sensitive. If you were to change (readtable-case *readtable*) to :preserve, your symbols would be read as they are writen (however, if you want this to apply to everything else, you'll have to recompile all that code read symbols with the default readtable-case of :upcase). At minimum, the standard says that implementations must support the following possible values for a readtable's readtable-case: :upcase, :downcase, :preserve, or :invert.