beginCommand endCommand beginInstruction endInstruction beginVariable endVariable firstString " secondString ' firstSingleLineComment // secondSingleLineComment beginFirstMultiLineComment { endFirstMultiLineComment } beginSecondMultiLineComment endSecondMultiLineComment functionDefinition ^\s*\w*(function|procedure)\s+\w\(.*\).*;$ removeFromFunction function keywordsCaseSensitive recolourKeywordIfAlreadyColoured keywords and array asm case const div do downto else file for function goto if in label mod nil not of operator or packed procedure program record repeat set then to type unit until uses var while with xor at automated break continue dispinterface dispose exit false finalization initialization library new published resourcestring self true as bindable constructor destructor except export finally import implementation inherited inline interface is module on only otherwise private property protected public qualified raise restricted shl shr threadvar try Integer Cardinal ShortInt SmallInt LongInt Int64 Byte Word LongWord Char AnsiChar WideChar Boolean ByteBool WordBool LongBool Single Double Extended Comp Currency Real Real48 String ShortString AnsiString WideString Pointer Variant File Text FIXME TODO ###