one of the biggest surprises for programmers coming from other languages is that, in lua, only false and nil are considered false; any object of a non-boolean type is always considered true in tests.
normal control characters (characters with values less than 32): this especially includes character 0, traditionally called nul; i call it nil to distinguish it from c」s null pointer.