What is happening here is that a single quote is not an ordinary character in Lisp, it is defined as a reader macro.
The Lisp user interface runs a so-called read-eval-print loop, often abbreviated as REPL. It is essentially just
(loop (print (eval (read))))
- with prompting, error handling etc. added.
So when you call READ, it expands all the reader macroes before giving the result to EVAL.
The behaviour of ' is to convert the next Lisp item into a call to the QUOTE function:
(read "(setq c' 100)") -> (SETQ C (QUOTE 100))
This happens with no regard to the syntactic correctness, EVAL has to handle that. So
$ (read "(setq a'b 50)")
(SETQ A (QUOTE B) 50)
- which doesn't make sense so you get an error in EVAL.
The previous was all normal Lisp behaviour, you'd get similar behaviour on any Lisp.
A somewhat similar thing happens with a period, but that is strictly an Autodesk oddity:
(setq a.b 42) doesn't cause any error reports, but behaves rather differently than most users would expect.
In Common Lisp that would be fully legal, setting the value of the variable A.B, but in AutoLISP, that sets the value of A instead.
_$ (setq a 'something)
SOMETHING
_$ (setq a.b 42)
42
_$ a.b
42
_$ a
42
_$ (read "a.b")
A
So what is happening, when reading a symbol name, the AutoLISP reader stops reading when encountering a period, uses what was read so far as the result and ignores the rest, with no warning whatsoever.
- creates rather interesting bugs if you are not familiar with this behaviour.
As these characters are fully legal elsewhere in a program, a programming environment can't catch these unless it also runs a full syntactic analysis.