This was created by: * enabling a trace statement in Tokenizer.cobra TokenRegexDef.match, * running: cobra -c cobra.cobra -files:files-to-compile.text * capturing the output * running that through count-unique-lines.cobra (found in Supplements) The point is that the most frequently checked regexes could benefit from hand-crafted implementations. To see an example of such a beast, see SpaceTokenDef in CobraTokenizer.cobra. It's over 14 X faster than the equivalent regex. 2 trace: _regExSource='//'; at Tokenizer.cobra:984; in TokenRegexDef.match ... 2077 trace: _regExSource='do\('; at Tokenizer.cobra:984; in TokenRegexDef.match 2264 trace: _regExSource='r"(?:\\.?|[^"\n])*"'; at Tokenizer.cobra:984; in TokenRegexDef.match 2281 trace: _regExSource='ns"(?:\\.?|[^"\n])*"'; at Tokenizer.cobra:984; in TokenRegexDef.match 2283 trace: _regExSource='ns'(?:\\.?|[^'\n])*''; at Tokenizer.cobra:984; in TokenRegexDef.match 2391 trace: _regExSource='r'(?:\\.?|[^'\n])*''; at Tokenizer.cobra:984; in TokenRegexDef.match 2834 trace: _regExSource='='; at Tokenizer.cobra:984; in TokenRegexDef.match 3035 trace: _regExSource=''(?:\\.?|[^'\n])*''; at Tokenizer.cobra:984; in TokenRegexDef.match 3108 trace: _regExSource='^(?=[^\t\n#\/])'; at Tokenizer.cobra:984; in TokenRegexDef.match 3363 trace: _regExSource='=='; at Tokenizer.cobra:984; in TokenRegexDef.match 3839 trace: _regExSource='to\?'; at Tokenizer.cobra:984; in TokenRegexDef.match 3921 trace: _regExSource=','; at Tokenizer.cobra:984; in TokenRegexDef.match 4451 trace: _regExSource='\)'; at Tokenizer.cobra:984; in TokenRegexDef.match 5266 trace: _regExSource='int[0-9]+(?=[^A-Za-z0-9_])'; at Tokenizer.cobra:984; in TokenRegexDef.match 5902 trace: _regExSource='if\('; at Tokenizer.cobra:984; in TokenRegexDef.match 7553 trace: _regExSource='\.'; at Tokenizer.cobra:984; in TokenRegexDef.match 7563 trace: _regExSource='\.\.'; at Tokenizer.cobra:984; in TokenRegexDef.match 14521 trace: _regExSource='^[\t]+[ ]+(?=[^\t ])'; at Tokenizer.cobra:984; in TokenRegexDef.match 14521 trace: _regExSource='^[\t]+'; at Tokenizer.cobra:984; in TokenRegexDef.match 14521 trace: _regExSource='^[\t]+[ ]+'; at Tokenizer.cobra:984; in TokenRegexDef.match 15446 trace: _regExSource='^[\t]+[ ]*\#.*$'; at Tokenizer.cobra:984; in TokenRegexDef.match 17901 trace: _regExSource='^[ \t]*\/\#.*$'; at Tokenizer.cobra:984; in TokenRegexDef.match 18457 trace: _regExSource='\n'; at Tokenizer.cobra:984; in TokenRegexDef.match 19056 trace: _regExSource='^[\t ]+$'; at Tokenizer.cobra:984; in TokenRegexDef.match 31166 trace: _regExSource='[ \t]+'; at Tokenizer.cobra:984; in TokenRegexDef.match 42730 trace: _regExSource='[A-Za-z_][A-Za-z0-9_]*'; at Tokenizer.cobra:984; in TokenRegexDef.match 46972 trace: _regExSource='[A-Za-z_][A-Za-z0-9_]*\('; at Tokenizer.cobra:984; in TokenRegexDef.match 47735 trace: _regExSource='[A-Za-z_][A-Za-z0-9_]*