######################################################################
################################# C ##################################
######################################################################
[c]
#comment
"", "", "[^/]/\*.*?\*/"
#string
"", "", "\".*?(\"|$)"
#esc character
- "", "", "\\."
#preprocessor line
"", "", "^[ \t]*#.*?$"
#esc character
- "", "", "\\(.|\n)"
#comment
- "", "", "[^/]/\*.*?\*/"
#character constant
"", "", "'.'"
#numeric constant
"", "", "\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\b"
#storage keyword
"", "", "\b(const|extern|auto|register|static|unsigned|signed|volatile|char|double|float|int|long|short|void|typedef|struct|union|enum)\b"
#keyword
"", "", "\b(return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof)\b"
#braces
"", "", "[\{\}]"
#symbols
"", "", "([\*\-\+=:;%&\|<>\(\)\[\]!]|[^/]/[^/])"
#identifiers
"", "", "([a-zA-Z_][a-zA-Z_0-9]*)"
######################################################################
################################# C ++ ###############################
######################################################################
[c++]
#comment
"", "", "[^/]/\*.*?\*/"
#cplus comment
"", "", "//.*?$"
#string
"", "", "\".*?(\"|$)"
#esc character
- "", "", "\\."
#preprocessor line
"", "", "^[ \t]*#.*?$"
#esc character
- "", "", "\\(.|\n)"
#comment
- "", "", "[^/]/\*.*?\*/"
#cplus comment
- "", "", "//.*?$"
#character constant
"", "", "'.'"
#numeric constant
"", "", "\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\b"
#storage keyword
"", "", "\b(class|typename|typeid|template|friend|virtual|inline|explicit|operator|overload|public|private|protected|const|extern|auto|register|static|mutable|unsigned|signed|volatile|char|double|float|int|long|short|bool|wchar_t|void|typedef|struct|union|enum)\b"
#keyword
"", "", "\b(new|delete|this|return|goto|if|else|case|default|switch|break|continue|while|do|for|catch|throw|sizeof|true|false|namespace|using|dynamic_cast|static_cast|reinterpret_cast)\b"
#braces
"", "", "[\{\}]"
#symbols
"", "", "([\*\-\+=:;%&\|<>\(\)\[\]!]|[^/]/[^/])"
#identifiers
"", "", "([a-zA-Z_][a-zA-Z_0-9]*)"
######################################################################
################################# Ada 95 #############################
######################################################################
[ada,ada95]
#Comments
"", "", "--.*?$"
#String Literals
"", "", "\".*?(\"|$)"
#Character Literals
"", "", "'.'"
#Ada Attibutes
"", "", "'[a-zA-Z][a-zA-Z_]+\b"
#Numeric Literals
"", "", "(((2|8|10|16)#[_0-9a-fA-F]*#)|[0-9.]+)"
#Withs Pragmas Use
"", "", "\b(([wW]ith|WITH|[pP]ragma|PRAGMA|[uU]se|USE)[ \t\n\f\r]+[a-zA-Z0-9_.]+;)+\b"
#Predefined Types
"", "", "\b([bB]oolean|BOOLEAN|[cC]haracter|CHARACTER|[cC]ount|COUNT|[dD]uration|DURATION|[fF]loat|FLOAT|[iI]nteger|INTEGER|[lL]ong_[fF]loat|LONG_FLOAT|[lL]ong_[iI]nteger|LONG_INTEGER|[pP]riority|PRIORITY|[sS]hort_[fF]loat|SHORT_FLOAT|[sS]hort_[iI]nteger|SHORT_INTEGER|[sS]tring|STRING)\b"
#Predefined Subtypes
"", "", "\b([fF]ield|FIELD|[nN]atural|NATURAL|[nN]umber_[bB]ase|NUMBER_BASE|[pP]ositive|POSITIVE|[pP]riority|PRIORITY)\b"
#Reserved Words
"", "", "\b([aA]bort|ABORT|[aA]bs|ABS|[aA]ccept|ACCEPT|[aA]ccess|ACCESS|[aA]nd|AND|[aA]rray|ARRAY|[aA][tT]|[bB]egin|BEGIN|[bB]ody|BODY|[cC]ase|CASE|[cC]onstant|CONSTANT|[dD]eclare|DECLARE|[dD]elay|DELAY|[dD]elta|DELTA|[dD]igits|DIGITS|[dD][oO]||[eE]lse|ELSE|[eE]lsif|ELSIF|[eE]nd|END|[eE]ntry|ENTRY|[eE]xception|EXCEPTION|[eE]xit|EXIT|[fF]or|FOR|[fF]unction|FUNCTION|[gG]eneric|GENERIC|[gG]oto|GOTO|[iI][fF]|[iI][nN]|[iI][sS]|[lL]imited|LIMITED|[lL]oop|LOOP|[mM]od|MOD|[nN]ew|NEW|[nN]ot|NOT|[nN]ull|NULL|[oO][fF]|[oO][rR]|[oO]thers|OTHERS|[oO]ut|OUT|[pP]ackage|PACKAGE|[pP]ragma|PRAGMA|[pP]rivate|PRIVATE|[pP]rocedure|PROCEDURE|[rR]aise|RAISE|[rR]ange|RANGE|[rR]ecord|RECORD|[rR]em|REM|[rR]enames|RENAMES|[rR]eturn|RETURN|[rR]everse|REVERSE|[sS]elect|SELECT|[sS]eparate|SEPARATE|[sS]ubtype|SUBTYPE|[tT]ask|TASK|[tT]erminate|TERMINATE|[tT]hen|THEN|[tT]ype|TYPE|[uU]se|USE|[wW]hen|WHEN|[wW]hile|WHILE|[wW]ith|WITH|[xX]or|XOR)\b"
#Ada 95 Only
"", "", "\b([aA]bstract|ABSTRACT|[tT]agged|TAGGED|[aA]ll|ALL|[pP]rotected|PROTECTED|[aA]liased|ALIASED|[rR]equeue|REQUEUE|[uU]ntil|UNTIL)\b"
#Identifiers
"", "", "\b[a-zA-Z][a-zA-Z0-9_]*\b"
#Dot All
"", "", "\.[aA][lL][lL]\b"
######################################################################
################################# Pascal #############################
######################################################################
[pas,pascal]
#comment1 (* *)
"", "", "\(\*.*?\*\)"
#comment1 { }
"", "", "\{.*?\}"
#string
"", "", "'.*?('|$)"
#preprocessor line
"", "", "^[ \t]*#.*?$"
#comment1 (* *)
- "", "", "\(\*.*?\*\)"
#comment1 { }
- "", "", "\{.*?\}"
#character constant
"", "", "'.'"
#numeric constant
"", "", "\b((0(x|X)[0-9a-fA-F]*)|[0-9.]+((e|E)(\+|-)?)?[0-9]*)(L|l|UL|ul|u|U|F|f)?\b"
#storage and ops
"", "", "\b(and|AND|array|const|div|export|file|function|import|in|IN|label|mod|module|nil|not|NOT|only|or|OR|packed|pow|pragma|procedure|program|protected|qualified|record|restricted|set|type|var)\b"
#keywords
"", "", "\b(begin|case|do|downto|else|end|for|goto|if|of|otherwise|then|to|until|while|with)\b"
#symbols
"", "", "([\*\-\+=:;<>\(\)\[\]!]|[^/]/[^/])"
#identifiers
"", "", "([a-zA-Z_][a-zA-Z_0-9]*)"
######################################################################
################################# Pascal #############################
######################################################################
[perl]
#comments
"", "", "#.*?$"
#double quote string
# "", "", "\".*?\""
#esc character
# - "", "", "\\."
#variables
# - "", "", "[$@%]\$?({[^}]*}|[^a-zA-Z0-9_/\t\n\.,\\[\\{\\(]|[0-9]+|[a-zA-Z_][a-zA-Z0-9_]*)?"
#single quote string
# "", "", "'.*?'"
#esc character
# - "", "", "\\."
#subroutine header
# "", "", "sub[\t ]+([a-zA-Z0-9_]+)[\t \n]*{"
#header coloring
# - "", "", "[\t ]+([a-zA-Z0-9_]+)[\t \n]"
#regex matching
# "", "", "\b((m|q|qq)?/)(\\/|[^/])*(/[gimsox]*)\b"
#match coloring
# - "", "", "^.*?/"
#match coloring
# - "", "", "/.*?$"
#regex substitution
# "", "", "\b((s|y|tr)/)(\\/|[^/])*(/)[^/]*(/[gimsox]*)\b"
#match coloring
# - "", "", "^.*?/"
#match coloring
# - "", "", "/.*?$"
#match coloring
# - "", "", "/"
#keywords
# "", "", "\b(my|local|new|if|until|while|elsif|else|eval|unless|for|foreach|continue|exit|die|last|goto|next|redo|return|local|exec|do|use|require|package|eval|BEGIN|END|eq|ne|not|\|\||\&\&|and|or)\b"
#library fns
# "", "", "\b(abs|accept|alarm|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chr|chroot|chown|closedir|close|connect|cos|crypt|dbmclose|dbmopen|defined|delete|die|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|exec|exists|exp|fctnl|fileno|flock|fork|format|formline|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|hex|import|index|int|ioctl|join|keys|kill|lcfirst|lc|length|link|listen|log|localtime|lstat|map|mkdir|msgctl|msgget|msgrcv|no|oct|opendir|open|ord|pack|pipe|pop|pos|printf|print|push|quotemeta|rand|readdir|read|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|scalar|seekdir|seek|select|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|telldir|tell|tie|tied|time|times|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|wait|waitpid|wantarray|warn|write|qw|-[rwxoRWXOezsfdlpSbctugkTBMAC])\b"
#variables
# "", "", "[$@%]\$?({[^}]*}|[^a-zA-Z0-9_/\t\n\.,\\[\\{\\(]|[0-9]+|[a-zA-Z_][a-zA-Z0-9_]*)?"
# "", "", "[$@%]\$?([a-zA-Z0-9_]*?\b|.)"
#subroutine calls
# "", "", "&[a-zA-Z0-9_]+"
#braces and parentheses
# "", "", "[\(\)\[\]{}]"
######################################################################
################################# HTML ###############################
######################################################################
[html]
#comment
"", "", ""
#special chars
"", "", "\&[-.a-zA-Z0-9#]*;?"
#tag
"", "", "<(/|!)?[-.a-zA-Z0-9]*.*?>"
#double quote string
- "", "", "\".*?\""
#single quote string
- "", "", "'.*?'"
#brackets
- "", "", "[<>]"
#attribute
- "", "", "[^'\"]*?"