beginCommand < endCommand > beginInstruction <% endInstruction %> beginVariable $%@ endVariable :;(){}=[]+-/.,*!?%&><\ firstString " secondString ' firstSingleLineComment # secondSingleLineComment beginFirstMultiLineComment /* endFirstMultiLineComment */ beginSecondMultiLineComment <!-- endSecondMultiLineComment --> functionDefinition ^\s*sub\s+.*\n?\s*{ removeFromFunction sub keywordsCaseSensitive recolourKeywordIfAlreadyColoured keywords use package require print close my open new if until while elsif else unless for foreach BEGIN END cmp eq ne le ge not and or xor chomp chop chr crypt hex index lc lcfirst length oct ord pack reverse rindex sprintf substr uc ucfirst pos quotemeta split study abs atan2 cos exp int log rand sin sqrt srand pop push shift splice unshift grep join map sort unpack delete each exists keys values caller continue die do dump eval exit goto last next redo return sub wantarray