Variables are named slots that can be used to store a value. Variable names are case insenitive, meaning the variable named FOO is the same as the variable named foo. Variables also can't be named the same as the Error values.
Variables are expressions that return the value they represent.
They can take on any value at any time. Once a variable is created, it exists for the entire verb execution, but once the verb ends, the variable is destroyed for that execution cycle. Variables can be operated on just like all other MOO values, but only using the rules of the same type with which that variable holds. Variables are often used to store the result of some expression. If an expression's result wasn't assigned to a variable, then the expression's result would be tossed on the floor and forgotten about.