beginCommand beginFirstMultiLineComment /+ beginInstruction beginSecondMultiLineComment /* beginVariable endCommand endFirstMultiLineComment +/ endInstruction endSecondMultiLineComment */ endVariable firstSingleLineComment // firstString " functionDefinition removeFromFunction keywords abstract alias align asm auto body break case cast catch class const continue default delegate delete deprecated do else enum export false final finally for foreach function goto if in inout interface invariant new null override out private protected public return static struct super switch synchronized this throw true try template typedef union volatile while with module import void bit byte ubyte short ushort int uint long ulong cent ucent float double real ireal ifloat idouble creal cfloat cdouble char wchar dchar printf extern C D Windows Pascal debug assert version DigitalMars X86 Win32 linux LittleEndian BigEndian D_InlineAsm none unittest keywordsCaseSensitive recolourKeywordIfAlreadyColoured secondSingleLineComment secondString '