palate 0.3.9

File type detection combining tft and hyperpolyglot
Documentation
static DISAMBIGUATIONS: phf::Map<&'static str, &'static [Rule]> =
::phf::Map {
    key: 16287231350648472473,
    disps: &[
        (0, 2),
        (0, 1),
        (0, 52),
        (0, 38),
        (0, 106),
        (8, 6),
        (3, 39),
        (5, 104),
        (0, 58),
        (4, 22),
        (3, 76),
        (0, 0),
        (0, 0),
        (0, 112),
        (21, 10),
        (36, 128),
        (0, 135),
        (7, 123),
        (0, 0),
        (0, 17),
        (0, 0),
        (0, 24),
        (1, 22),
        (0, 30),
        (0, 124),
        (0, 64),
        (2, 80),
        (0, 132),
        (15, 67),
        (2, 45),
    ],
    entries: &[
        (".hh", &[Rule { languages: &[FileType::Hack], pattern: Some(Pattern::Positive("<\\?hh"))},]),
        (".3qt", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: None},]),
        (".lp", &[Rule { languages: &[FileType::Lambdapi], pattern: Some(Pattern::Positive("(?:^|\\s)symbol(?:$|\\s)|(?:^|\\s)rule(?:$|\\s)"))},Rule { languages: &[FileType::LinearProgramming], pattern: Some(Pattern::Positive("(?i)^\\s*(?:minimize|minimum|min|maximize|maximum|max)(?:\\s+multi-objectives)?\\s*$"))},Rule { languages: &[FileType::AnswerSetProgramming], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*#(?:include|const|program|script|show|minimize|maximize|heuristic|project|edge|theory|defined)\\b"),Pattern::Positive("^\\s*(?:[A-Za-z_]\\w*(?:\\([^)]*\\))?\\s*:-|:-)\\s[^.]*\\."),Pattern::Positive("^\\s*[a-z_][a-zA-Z0-9_]*(?:\\([^)]*\\))?\\s*\\.\\s*$"),]))},]),
        (".php", &[Rule { languages: &[FileType::Hack], pattern: Some(Pattern::Positive("<\\?hh"))},Rule { languages: &[FileType::Php], pattern: Some(Pattern::Positive("<\\?[^h]"))},]),
        (".es", &[Rule { languages: &[FileType::Erlang], pattern: Some(Pattern::Positive("^\\s*(?:%%|main\\s*\\(.*?\\)\\s*->)"))},Rule { languages: &[FileType::JavaScript], pattern: Some(Pattern::Positive("\\/\\/|[\"']use strict[\"']|export\\s+default\\s|\\/\\*(?:.|[\\r\\n])*?\\*\\/"))},]),
        (".tact", &[Rule { languages: &[FileType::Json], pattern: Some(Pattern::Positive("\\A\\s*\\{\\\""))},Rule { languages: &[FileType::Tact], pattern: None},]),
        (".v", &[Rule { languages: &[FileType::Coq], pattern: Some(Pattern::Positive("(?:^|\\s)(?:Proof|Qed)\\.(?:$|\\s)|(?:^|\\s)Require[ \\t]+(Import|Export)\\s"))},Rule { languages: &[FileType::SystemVerilog], pattern: Some(Pattern::Positive("^[ \\t]*module\\s+[^\\s()]+\\s*\\#?\\(|^[ \\t]*`(?:define|ifdef|ifndef|include|timescale|pragma)|^[ \\t]*always[ \\t]*@|^[ \\t]*initial[ \\t]*(begin|@)"))},Rule { languages: &[FileType::V], pattern: Some(Pattern::Positive("\\$(?:if|else)[ \\t]|^[ \\t]*fn\\s+[^\\s()]+\\(.*?\\).*?\\{|^[ \\t]*for\\s*\\{"))},]),
        (".stl", &[Rule { languages: &[FileType::AsciiStl], pattern: Some(Pattern::Positive("\\A\\s*solid(?:$|\\s)[\\s\\S]*^endsolid(?:$|\\s)"))},]),
        (".gsh", &[Rule { languages: &[FileType::Csc], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*#\\s*(?:using|insert|include|define|namespace)[ \\t]+\\w"),Pattern::Positive("^\\s*((?:autoexec|private)\\s+){0,2}function\\s+((?:autoexec|private)\\s+){0,2}\\w+\\s*\\("),Pattern::Positive("\\b(?:level|self)[ \\t]+thread[ \\t]+(?:\\[\\[[ \\t]*(\\w+\\.)+[ \\t]*\\]\\]|\\w+)[ \\t]*\\([^\\r\\n\\)]*\\)[ \\t]*;"),Pattern::Positive("^[ \\t]*#[ \\t]*(?:precache|using_animtree)[ \\t]*\\("),]))},]),
        (".d", &[Rule { languages: &[FileType::D], pattern: Some(Pattern::Positive("^module\\s+[\\w.]*\\s*;|import\\s+[\\w\\s,.:]*;|\\w+\\s+\\w+\\s*\\(.*\\)(?:\\(.*\\))?\\s*\\{[^}]*\\}|unittest\\s*(?:\\(.*\\))?\\s*\\{[^}]*\\}"))},Rule { languages: &[FileType::DTrace], pattern: Some(Pattern::Positive("^(\\w+:\\w*:\\w*:\\w*|BEGIN|END|provider\\s+|(tick|profile)-\\w+\\s+\\{[^}]*\\}|#pragma\\s+D\\s+(option|attributes|depends_on)\\s|#pragma\\s+ident\\s)"))},Rule { languages: &[FileType::Make], pattern: Some(Pattern::Positive("([\\/\\\\].*:\\s+.*\\s\\\\$|: \\\\$|^[ %]:|^[\\w\\s\\/\\\\.]+\\w+\\.\\w+\\s*:\\s+[\\w\\s\\/\\\\.]+\\w+\\.\\w+)"))},]),
        (".action", &[Rule { languages: &[FileType::Privoxy], pattern: Some(Pattern::And(&[Pattern::Positive("(?i)^[a-z]\\w*(?:\\/[a-z]\\w*)?(?:<=\\d+)?(?:\\[(?:<=\\d+)?\\])?\\s+\\w+\\b"),Pattern::Positive("^---\\s*$"),Pattern::Negative("^\\s*[^\\s@#\\w-]"),]))},]),
        (".cs", &[Rule { languages: &[FileType::St], pattern: Some(Pattern::Positive("![\\w\\s]+methodsFor: "))},Rule { languages: &[FileType::CSharp], pattern: Some(Pattern::Positive("^\\s*(using\\s+[A-Z][\\s\\w.]+;|namespace\\s*[\\w\\.]+\\s*(\\{|;)|\\/\\/)"))},]),
        (".mojo", &[Rule { languages: &[FileType::Mojo], pattern: Some(Pattern::Positive("^\\s*(alias|def|from|fn|import|struct|trait)\\s"))},Rule { languages: &[FileType::Xml], pattern: Some(Pattern::Positive("^\\s*<\\?xml"))},]),
        (".builds", &[Rule { languages: &[FileType::Xml], pattern: Some(Pattern::Positive("^(\\s*)(?i:<Project|<Import|<Property|<?xml|xmlns)"))},]),
        (".dsp", &[Rule { languages: &[FileType::Make], pattern: Some(Pattern::Positive("# Microsoft Developer Studio Generated Build File"))},Rule { languages: &[FileType::Faust], pattern: Some(Pattern::Positive("\\bprocess\\s*[(=]|\\b(library|import)\\s*\\(\\s*\"|\\bdeclare\\s+(name|version|author|copyright|license)\\s+\""))},]),
        (".fs", &[Rule { languages: &[FileType::Forth], pattern: Some(Pattern::Positive("^(: |new-device)"))},Rule { languages: &[FileType::FSharp], pattern: Some(Pattern::Positive("^\\s*(#light|import|let|module|namespace|open|type)"))},Rule { languages: &[FileType::Glsl], pattern: Some(Pattern::Positive("^\\s*(#version|precision|uniform|varying|vec[234])"))},Rule { languages: &[FileType::Filterscript], pattern: Some(Pattern::Positive("#include|#pragma\\s+(rs|version)|__attribute__"))},]),
        (".txt", &[Rule { languages: &[FileType::VimHelp], pattern: Some(Pattern::Positive("(?:(?:^|[ \\t])(?:vi|Vi(?=m))(?:m[<=>]?[0-9]+|m)?|[ \\t]ex)(?=:(?=[ \\t]*set?[ \\t][^\\r\\n:]+:)|:(?![ \\t]*set?[ \\t]))(?:(?:[ \\t]*:[ \\t]*|[ \\t])\\w*(?:[ \\t]*=(?:[^\\\\\\s]|\\\\.)*)?)*[ \\t:](?:filetype|ft|syntax)[ \\t]*=(help)(?=$|\\s|:)"))},Rule { languages: &[FileType::Hosts], pattern: Some(Pattern::Positive("(?xi) ^\n\n# IPv4 address\n(?<ipv4>\n  (?!\\.)\n  (?:\\.?\n    (?: 25[0-5]  # 250-255\n    |   2[0-4]\\d # 200-249\n    |   1\\d\\d    # 100-199\n    |   [1-9]?\\d # 0-99\n    )\\b\n){4})\n\n# CIDR notation: /[0-32]\n(?<cidr>/(3[0-2]|[12]?\\d)\\b)?\n\n# Domains list\n(?<domains>\n  [ \\t]+\n  \\w[-\\w]* (?:\\.\\w[-\\w]*)*\n  (?<!-)\\b\n)*+\n\n(?:$|\\s)"))},Rule { languages: &[FileType::AdBlockFilters], pattern: Some(Pattern::Positive("(?x)\\A\n\\[\n(?<version>\n  (?:\n    [Aa]d[Bb]lock\n    (?:[ \\t][Pp]lus)?\n    |\n    u[Bb]lock\n    (?:[ \\t][Oo]rigin)?\n    |\n    [Aa]d[Gg]uard\n  )\n  (?:[ \\t] \\d+(?:\\.\\d+)*+)?\n)\n(?:\n  [ \\t]?;[ \\t]?\n  \\k<version>\n)*+\n\\]"))},Rule { languages: &[FileType::Text], pattern: None},]),
        (".4", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^\\.(?:[A-Za-z]{2}(?:\\s|$)|\\\\\")"))},Rule { languages: &[FileType::Text], pattern: None},]),
        (".cl", &[Rule { languages: &[FileType::Lisp], pattern: Some(Pattern::Positive("^\\s*\\((?i:defun|in-package|defpackage) "))},Rule { languages: &[FileType::Lisp], pattern: Some(Pattern::Positive("^class"))},Rule { languages: &[FileType::Lisp], pattern: Some(Pattern::Positive("\\/\\* |\\/\\/ |^\\}"))},]),
        (".sw", &[Rule { languages: &[FileType::Sway], pattern: Some(Pattern::Positive("^\\s*(?:(?:abi|dep|fn|impl|mod|pub|trait)\\s|#\\[)"))},Rule { languages: &[FileType::Xml], pattern: Some(Pattern::Positive("^\\s*<\\?xml\\s+version"))},]),
        (".sc", &[Rule { languages: &[FileType::Supercollider], pattern: Some(Pattern::Positive("(?i:\\^(this|super)\\.|^\\s*~\\w+\\s*=\\.)"))},Rule { languages: &[FileType::Scala], pattern: Some(Pattern::Positive("(^\\s*import (scala|java)\\.|^\\s*class\\b)"))},]),
        (".csc", &[Rule { languages: &[FileType::Csc], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*#\\s*(?:using|insert|include|define|namespace)[ \\t]+\\w"),Pattern::Positive("^\\s*((?:autoexec|private)\\s+){0,2}function\\s+((?:autoexec|private)\\s+){0,2}\\w+\\s*\\("),Pattern::Positive("\\b(?:level|self)[ \\t]+thread[ \\t]+(?:\\[\\[[ \\t]*(\\w+\\.)+[ \\t]*\\]\\]|\\w+)[ \\t]*\\([^\\r\\n\\)]*\\)[ \\t]*;"),Pattern::Positive("^[ \\t]*#[ \\t]*(?:precache|using_animtree)[ \\t]*\\("),]))},]),
        (".3in", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: None},]),
        (".gsc", &[Rule { languages: &[FileType::Csc], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*#\\s*(?:using|insert|include|define|namespace)[ \\t]+\\w"),Pattern::Positive("^\\s*((?:autoexec|private)\\s+){0,2}function\\s+((?:autoexec|private)\\s+){0,2}\\w+\\s*\\("),Pattern::Positive("\\b(?:level|self)[ \\t]+thread[ \\t]+(?:\\[\\[[ \\t]*(\\w+\\.)+[ \\t]*\\]\\]|\\w+)[ \\t]*\\([^\\r\\n\\)]*\\)[ \\t]*;"),Pattern::Positive("^[ \\t]*#[ \\t]*(?:precache|using_animtree)[ \\t]*\\("),]))},]),
        (".scm", &[Rule { languages: &[FileType::Scheme], pattern: Some(Pattern::Or(&[Pattern::Positive("\\(#[\\w-]+[!\\?]"),Pattern::Positive("(?:[\\)\\]]\\s*[\\*\\+\\?](?:\\s|$))"),Pattern::Positive("(?:^\\s*\\w+:\\s*[\\(\\[\\\"])"),Pattern::Positive("\\(#(?:set!|(?:not-)?(?:any-of|match)\\?)"),Pattern::Positive("@[\\w.-]+(?:\\)\\s|$)"),]))},Rule { languages: &[FileType::Scheme], pattern: Some(Pattern::Or(&[Pattern::Positive("(?:'[\\(\\*#]|\\w->\\w|\\.\\.\\.[\\s\\)]|\\([+\\-:<>\\/=~\\)]|~>|[#`]\\(|#:\\w)"),Pattern::Positive("^\\s*\\((?:define\\*?|import|library|lambda)"),]))},]),
        (".vba", &[Rule { languages: &[FileType::Vim], pattern: Some(Pattern::Positive("^UseVimball"))},Rule { languages: &[FileType::Vim], pattern: None},]),
        (".vcf", &[Rule { languages: &[FileType::Tsv], pattern: Some(Pattern::Positive("\\A##fileformat=VCF"))},Rule { languages: &[FileType::VirtualContactFile], pattern: Some(Pattern::Positive("\\ABEGIN:VCARD"))},]),
        (".toc", &[Rule { languages: &[FileType::Cdrtoc], pattern: Some(Pattern::Positive("^## |@no-lib-strip@"))},Rule { languages: &[FileType::Tex], pattern: Some(Pattern::Positive("^\\\\(contentsline|defcounter|beamer|boolfalse)"))},]),
        (".e", &[Rule { languages: &[FileType::E], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*(def|var)\\s+(.+):="),Pattern::Positive("^\\s*(def|to)\\s+(\\w+)(\\(.+\\))?\\s+\\{"),Pattern::Positive("^\\s*(when)\\s+(\\(.+\\))\\s+->\\s+\\{"),]))},Rule { languages: &[FileType::Eiffel], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*\\w+\\s*(?:,\\s*\\w+)*[:]\\s*\\w+\\s"),Pattern::Positive("^\\s*\\w+\\s*(?:\\(\\s*\\w+[:][^)]+\\))?(?:[:]\\s*\\w+)?(?:--.+\\s+)*\\s+(?:do|local)\\s"),Pattern::Positive("^\\s*(?:across|deferred|elseif|ensure|feature|from|inherit|inspect|invariant|note|once|require|undefine|variant|when)\\s*$"),]))},Rule { languages: &[FileType::Euphoria], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*namespace\\s"),Pattern::Positive("^\\s*(?:public\\s+)?include\\s"),Pattern::Positive("^\\s*(?:(?:public|export|global)\\s+)?(?:atom|constant|enum|function|integer|object|procedure|sequence|type)\\s"),]))},]),
        (".bas", &[Rule { languages: &[FileType::BasicForAndroid], pattern: Some(Pattern::Positive("\\A\\W{0,3}(?:.*(?:\\r?\\n|\\r)){0,9}B4(?:J|A|R|i)=true"))},Rule { languages: &[FileType::FreeBasic], pattern: Some(Pattern::Or(&[Pattern::Positive("(?i)^[ \\t]*#(?:define|endif|endmacro|ifn?def|include|lang|macro|pragma)(?:$|\\s)"),Pattern::Positive("(?i)^[ \\t]*dim( shared)? [a-z_][a-z0-9_]* as [a-z_][a-z0-9_]* ptr"),]))},Rule { languages: &[FileType::FreeBasic], pattern: Some(Pattern::And(&[Pattern::Positive("(?i)^[ \\t]*return "),Pattern::Negative("(?i)[ \\t]*gosub "),]))},Rule { languages: &[FileType::Basic], pattern: Some(Pattern::Positive("\\A\\s*\\d"))},Rule { languages: &[FileType::Qb64], pattern: Some(Pattern::Or(&[Pattern::Positive("^[ ]*(CONST|DIM|REDIM|DEFINT|PRINT|DECLARE (SUB|FUNCTION)|FUNCTION|SUB) "),Pattern::Positive("(#|$)lang:?\\s*\"?qb\"?"),Pattern::Positive("(?i)'\\$INCLUDE:"),Pattern::Positive("(?i)^[ ]*CLS[ ]*('|:|\\r|\\n)"),Pattern::Positive("(?i)^[ ]*OPTION _EXPLICIT"),Pattern::Positive("(?i)^[ ]*DIM SHARED "),Pattern::Positive("(?i)^[ ]*PRINT \""),Pattern::Positive("(?i) As _(Byte|Offset|MEM)"),Pattern::Positive("(?i)^[ ]*_(DISPLAY|DEST|CONSOLE|SOURCE|FREEIMAGE|PALETTECOLOR|PRINTSTRING|LOADFONT|PUTIMAGE)"),Pattern::Positive("(?i)^[ ]*_(TITLE|PLAYMOD) \""),Pattern::Positive("(?i)^[ ]*_(LIMIT|SCREEN|DELAY) \\.?\\d+"),Pattern::Positive("(?i)\\b_(MOUSEBUTTON|NEWIMAGE|KEYDOWN|WIDTH|HEIGHT)\\("),Pattern::Positive("(?i)^[ ]*\\$(CONSOLE|CHECKING):"),Pattern::Positive("(?i)^[ ]*\\$(FULLSCREEN|RESIZE|STATIC|DYNAMIC|NOPREFIX|SCREENSHOW|SCREENHIDE|EXEICON)\\b"),]))},Rule { languages: &[FileType::Vim], pattern: Some(Pattern::Or(&[Pattern::Positive("\\b(?:VBA|[vV]ba)(?:\\b|[0-9A-Z_])"),Pattern::Positive("^[ ]*(?:Public|Private)? Declare PtrSafe (?:Sub|Function)\\b"),Pattern::Positive("^[ ]*#If Win64\\b"),Pattern::Positive("^[ ]*(?:Dim|Const) [0-9a-zA-Z_]*[ ]*As Long(?:Ptr|Long)\\b"),Pattern::Positive("^[ ]*Option (?:Private Module|Compare Database)\\b"),Pattern::Positive("(?: |\\()(?:Access|Excel|Outlook|PowerPoint|Visio|Word|VBIDE)\\.\\w"),Pattern::Positive("\\b(?:(?:Active)?VBProjects?|VBComponents?|Application\\.(?:VBE|ScreenUpdating))\\b"),Pattern::Positive("\\b(?:ThisDrawing|AcadObject|Active(?:Explorer|Inspector|Window\\.Presentation|Presentation|Document)|Selection\\.(?:Document|Find|Paragraphs|Range))\\b"),Pattern::Positive("\\b(?:(?:This|Active)?Workbooks?|Worksheets?|Active(?:Sheet|Chart|Cell)|WorksheetFunction)\\b"),Pattern::Positive("\\b(?:Range\\(\".*|Cells\\([0-9a-zA-Z_]*, (?:[0-9a-zA-Z_]*|\"[a-zA-Z]{1,3}\"))\\)"),]))},Rule { languages: &[FileType::Vb], pattern: Some(Pattern::Positive("^[ ]*Attribute VB_Name = "))},]),
        (".gts", &[Rule { languages: &[FileType::TypeScriptGlimmer], pattern: Some(Pattern::Positive("^G0."))},Rule { languages: &[FileType::TypeScriptGlimmer], pattern: Some(Pattern::Negative("^G0."))},]),
        (".st", &[Rule { languages: &[FileType::St], pattern: Some(Pattern::Positive("\\$\\w+[($]|.!\\s*.+?\\s*!.|<!\\s*.+?\\s*!>|\\[!\\s*.+?\\s*!\\]|\\{!\\s*.+?\\s*!\\}"))},Rule { languages: &[FileType::St], pattern: Some(Pattern::Positive("\\A\\s*[\\[{(^\"'\\w#]|[a-zA-Z_]\\w*\\s*:=\\s*[a-zA-Z_]\\w*|class\\s*>>\\s*[a-zA-Z_]\\w*|^[a-zA-Z_]\\w*\\s+[a-zA-Z_]\\w*:|^Class\\s*\\{|if(?:True|False):\\s*\\["))},]),
        (".frm", &[Rule { languages: &[FileType::Vim], pattern: Some(Pattern::And(&[Pattern::Positive("^[ ]*VERSION [0-9]\\.[0-9]{2}"),Pattern::Positive("^\\s*Begin\\s+\\{[0-9A-Z\\-]*\\}\\s?"),]))},Rule { languages: &[FileType::Vb], pattern: Some(Pattern::And(&[Pattern::Positive("^[ ]*VERSION [0-9]\\.[0-9]{2}"),Pattern::Positive("^\\s*Begin\\s+VB\\.Form\\s+"),]))},Rule { languages: &[FileType::ConfIni], pattern: Some(Pattern::Positive("\\ATYPE=VIEW"))},]),
        (".typ", &[Rule { languages: &[FileType::Typst], pattern: Some(Pattern::Positive("^#(import|show|let|set)"))},Rule { languages: &[FileType::Xml], pattern: None},]),
        (".star", &[Rule { languages: &[FileType::Starlark], pattern: Some(Pattern::Positive("^loop_\\s*$"))},Rule { languages: &[FileType::Starlark], pattern: None},]),
        (".ice", &[Rule { languages: &[FileType::Json], pattern: Some(Pattern::Positive("\\A\\s*[{\\[]"))},Rule { languages: &[FileType::Slice], pattern: None},]),
        (".ncl", &[Rule { languages: &[FileType::Xml], pattern: Some(Pattern::Positive("^\\s*<\\?xml\\s+version"))},Rule { languages: &[FileType::TypeScriptGlimmer], pattern: Some(Pattern::Positive("^[DGMT][0-9]{2}\\*(?:\\r?\\n|\\r)"))},Rule { languages: &[FileType::Nickel], pattern: Some(Pattern::Or(&[Pattern::Positive("^let(?:\\srec)?(?:\\s[a-zA-Z_][a-zA-Z0-9_]*)?"),Pattern::Positive("^import\\s\"[^\"]+\"\\s+as\\s"),Pattern::Positive("std\\.[a-zA-Z_][a-zA-Z0-9_]*\\."),]))},Rule { languages: &[FileType::Text], pattern: Some(Pattern::Positive("THE_TITLE"))},Rule { languages: &[FileType::Nickel], pattern: Some(Pattern::Or(&[Pattern::Positive("^load \""),Pattern::Positive("^begin$"),Pattern::Positive("[0-9]\\.$"),Pattern::Positive("^;"),]))},]),
        (".properties", &[Rule { languages: &[FileType::ConfIni], pattern: Some(Pattern::And(&[Pattern::Positive("^[^#!;][^=]*="),Pattern::Positive("^[;\\[]"),]))},Rule { languages: &[FileType::JProperties], pattern: Some(Pattern::And(&[Pattern::Positive("^[^#!;][^=]*="),Pattern::Positive("^[#!]"),]))},Rule { languages: &[FileType::ConfIni], pattern: Some(Pattern::Positive("^[^#!;][^=]*="))},Rule { languages: &[FileType::JProperties], pattern: Some(Pattern::Positive("^[^#!][^:]*:"))},]),
        (".asc", &[Rule { languages: &[FileType::PublicKey], pattern: Some(Pattern::Positive("^(----[- ]BEGIN|ssh-(rsa|dss)) "))},Rule { languages: &[FileType::AsciiDoc], pattern: Some(Pattern::Positive("^[=-]+\\s|\\{\\{[A-Za-z]"))},Rule { languages: &[FileType::Ags], pattern: Some(Pattern::Positive("^(\\/\\/.+|((import|export)\\s+)?(function|int|float|char)\\s+((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+)\\s*[;\\(])"))},]),
        (".inc", &[Rule { languages: &[FileType::M68k], pattern: Some(Pattern::Or(&[Pattern::Positive("(?im)\\bmoveq(?:\\.l)?\\s+#(?:\\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\\s*d[0-7]\\b"),Pattern::Positive("(?im)^\\s*move(?:\\.[bwl])?\\s+(?:sr|usp),\\s*[^\\s]+"),Pattern::Positive("(?im)^\\s*move\\.[bwl]\\s+.*\\b[ad]\\d"),Pattern::Positive("(?im)^\\s*movem\\.[bwl]\\b"),Pattern::Positive("(?im)^\\s*move[mp](?:\\.[wl])?\\b"),Pattern::Positive("(?im)^\\s*btst\\b"),Pattern::Positive("(?im)^\\s*dbra\\b"),]))},Rule { languages: &[FileType::Php], pattern: Some(Pattern::Positive("^<\\?(?:php)?"))},Rule { languages: &[FileType::Sourcepawn], pattern: Some(Pattern::Or(&[Pattern::Positive("^public\\s+(?:SharedPlugin(?:\\s+|:)__pl_\\w+\\s*=(?:\\s*\\{)?|(?:void\\s+)?__pl_\\w+_SetNTVOptional\\(\\)(?:\\s*\\{)?)"),Pattern::Positive("^methodmap\\s+\\w+\\s+<\\s+\\w+"),Pattern::Positive("^\\s*MarkNativeAsOptional\\s*\\("),]))},Rule { languages: &[FileType::Nasl], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*include\\s*\\(\\s*(?:\"|')[\\\\/\\w\\-\\.:\\s]+\\.(?:nasl|inc)\\s*(?:\"|')\\s*\\)\\s*;"),Pattern::Positive("^\\s*(?:global|local)_var\\s+(?:\\w+(?:\\s*=\\s*[\\w\\-\"']+)?\\s*)(?:,\\s*\\w+(?:\\s*=\\s*[\\w\\-\"']+)?\\s*)*\\s*;"),Pattern::Positive("^\\s*namespace\\s+\\w+\\s*\\{"),Pattern::Positive("^\\s*object\\s+\\w+\\s*(?:extends\\s+\\w+(?:::\\w+)?)?\\s*\\{"),Pattern::Positive("^\\s*(?:public\\s+|private\\s+|\\s*)function\\s+\\w+\\s*\\([\\w\\s,]*\\)\\s*\\{"),]))},Rule { languages: &[FileType::Pov], pattern: Some(Pattern::Positive("^\\s*#(declare|local|macro|while)\\s"))},Rule { languages: &[FileType::Pascal], pattern: Some(Pattern::Or(&[Pattern::Positive("(?i:^\\s*\\{\\$(?:mode|ifdef|undef|define)[ ]+[a-z0-9_]+\\})"),Pattern::Positive("^\\s*end[.;]\\s*$"),]))},Rule { languages: &[FileType::Bitbake], pattern: Some(Pattern::Positive("^inherit(\\s+[\\w.-]+)+\\s*$"))},Rule { languages: &[FileType::Nasm], pattern: Some(Pattern::Or(&[Pattern::Positive("^(?i)[^\"m]*mov\\s+[^\\s]+,"),Pattern::Positive("^\\s+(?i)db\\s+[a-z\\d]"),]))},]),
        (".cmp", &[Rule { languages: &[FileType::TypeScriptGlimmer], pattern: Some(Pattern::Positive("^[DGMT][0-9]{2}\\*(?:\\r?\\n|\\r)"))},]),
        (".ch", &[Rule { languages: &[FileType::Clipper], pattern: Some(Pattern::Positive("^\\s*#\\s*(?i:if|ifdef|ifndef|define|command|xcommand|translate|xtranslate|include|pragma|undef)\\b"))},]),
        (".rs", &[Rule { languages: &[FileType::Rust], pattern: Some(Pattern::Positive("^(use |fn |mod |pub |macro_rules|impl|#!?\\[)"))},Rule { languages: &[FileType::Rust], pattern: Some(Pattern::Positive("#include|#pragma\\s+(rs|version)|__attribute__"))},Rule { languages: &[FileType::Xml], pattern: Some(Pattern::Positive("^\\s*<\\?xml"))},]),
        (".mdoc", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: None},]),
        (".3pm", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: None},]),
        (".res", &[Rule { languages: &[FileType::ReScript], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*(let|module|type)\\s+\\w*\\s+=\\s+"),Pattern::Positive("^\\s*(?:include|open)\\s+\\w+\\s*$"),]))},]),
        (".asy", &[Rule { languages: &[FileType::Asy], pattern: Some(Pattern::Positive("^SymbolType[ \\t]"))},Rule { languages: &[FileType::Asy], pattern: None},]),
        (".bst", &[Rule { languages: &[FileType::Bst], pattern: Some(Pattern::Positive("ENTRY\\s*\\{"))},Rule { languages: &[FileType::Bst], pattern: None},]),
        (".tsx", &[Rule { languages: &[FileType::Xml], pattern: Some(Pattern::Positive("(?i:^\\s*<\\?xml\\s+version)"))},Rule { languages: &[FileType::Tsx], pattern: None},]),
        (".ecl", &[Rule { languages: &[FileType::Eclipse], pattern: Some(Pattern::Positive("^[^#]+:-"))},Rule { languages: &[FileType::Ecl], pattern: Some(Pattern::Positive(":="))},]),
        (".tsp", &[Rule { languages: &[FileType::Typespec], pattern: Some(Pattern::Positive("^(import|using|namespace|interface|op|model|scalar|alias|union|enum)\\s"))},Rule { languages: &[FileType::Typespec], pattern: Some(Pattern::Positive("^(NAME|TYPE|DIMENSION|EDGE_WEIGHT_TYPE|EDGE_WEIGHT_FORMAT)\\s*:"))},]),
        (".r", &[Rule { languages: &[FileType::Rebol], pattern: Some(Pattern::Positive("(?i:\\bRebol\\b)"))},Rule { languages: &[FileType::Rez], pattern: Some(Pattern::Positive("(#include\\s+[\"<](Types\\.r|Carbon\\/Carbon\\.r)[\">])|((resource|data|type)\\s+'[A-Za-z0-9]{4}'\\s+((\\(.*\\)\\s+){0,1}){)"))},Rule { languages: &[FileType::R], pattern: Some(Pattern::Positive("<-|^\\s*#"))},]),
        (".plt", &[Rule { languages: &[FileType::Prolog], pattern: Some(Pattern::Positive("^\\s*:-"))},]),
        (".asm", &[Rule { languages: &[FileType::Nasm], pattern: Some(Pattern::Positive("(?i)mov\\s+[^\\s]{2,},"))},Rule { languages: &[FileType::M68k], pattern: Some(Pattern::Or(&[Pattern::Positive("(?im)\\bmoveq(?:\\.l)?\\s+#(?:\\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\\s*d[0-7]\\b"),Pattern::Positive("(?im)^\\s*move(?:\\.[bwl])?\\s+(?:sr|usp),\\s*[^\\s]+"),Pattern::Positive("(?im)^\\s*move\\.[bwl]\\s+.*\\b[ad]\\d"),Pattern::Positive("(?im)^\\s*movem\\.[bwl]\\b"),Pattern::Positive("(?im)^\\s*move[mp](?:\\.[wl])?\\b"),Pattern::Positive("(?im)^\\s*btst\\b"),Pattern::Positive("(?im)^\\s*dbra\\b"),]))},]),
        (".n", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^[.']"))},Rule { languages: &[FileType::Nemerle], pattern: Some(Pattern::Positive("^(module|namespace|using)\\s"))},]),
        (".bi", &[Rule { languages: &[FileType::FreeBasic], pattern: Some(Pattern::Or(&[Pattern::Positive("(?i)^[ \\t]*#(?:define|endif|endmacro|ifn?def|include|lang|macro|pragma)(?:$|\\s)"),Pattern::Positive("(?i)^[ \\t]*dim( shared)? [a-z_][a-z0-9_]* as [a-z_][a-z0-9_]* ptr"),]))},Rule { languages: &[FileType::FreeBasic], pattern: Some(Pattern::And(&[Pattern::Positive("(?i)^[ \\t]*return "),Pattern::Negative("(?i)[ \\t]*gosub "),]))},Rule { languages: &[FileType::Qb64], pattern: Some(Pattern::Or(&[Pattern::Positive("^[ ]*(CONST|DIM|REDIM|DEFINT|PRINT|DECLARE (SUB|FUNCTION)|FUNCTION|SUB) "),Pattern::Positive("(#|$)lang:?\\s*\"?qb\"?"),Pattern::Positive("(?i)'\\$INCLUDE:"),Pattern::Positive("(?i)^[ ]*CLS[ ]*('|:|\\r|\\n)"),Pattern::Positive("(?i)^[ ]*OPTION _EXPLICIT"),Pattern::Positive("(?i)^[ ]*DIM SHARED "),Pattern::Positive("(?i)^[ ]*PRINT \""),Pattern::Positive("(?i) As _(Byte|Offset|MEM)"),Pattern::Positive("(?i)^[ ]*_(DISPLAY|DEST|CONSOLE|SOURCE|FREEIMAGE|PALETTECOLOR|PRINTSTRING|LOADFONT|PUTIMAGE)"),Pattern::Positive("(?i)^[ ]*_(TITLE|PLAYMOD) \""),Pattern::Positive("(?i)^[ ]*_(LIMIT|SCREEN|DELAY) \\.?\\d+"),Pattern::Positive("(?i)\\b_(MOUSEBUTTON|NEWIMAGE|KEYDOWN|WIDTH|HEIGHT)\\("),Pattern::Positive("(?i)^[ ]*\\$(CONSOLE|CHECKING):"),Pattern::Positive("(?i)^[ ]*\\$(FULLSCREEN|RESIZE|STATIC|DYNAMIC|NOPREFIX|SCREENSHOW|SCREENHIDE|EXEICON)\\b"),]))},]),
        (".lisp", &[Rule { languages: &[FileType::Lisp], pattern: Some(Pattern::Positive("^\\s*\\((?i:defun|in-package|defpackage) "))},Rule { languages: &[FileType::Lisp], pattern: Some(Pattern::Positive("^\\s*\\(define "))},]),
        (".ml", &[Rule { languages: &[FileType::OCaml], pattern: Some(Pattern::Positive("(^\\s*module)|let rec |match\\s+(\\S+\\s)+with"))},Rule { languages: &[FileType::Sml], pattern: Some(Pattern::Positive("=> |case\\s+(\\S+\\s)+of"))},]),
        (".ftl", &[Rule { languages: &[FileType::Fluent], pattern: Some(Pattern::Positive("^(?:<|[a-zA-Z-][a-zA-Z0-9_-]+[ \\t]+\\w)|\\$\\{\\w+[^\\r\\n]*?\\}|^[ \\t]*(?:<#--.*?-->|<#(?:[a-z]+)\\s[^>]*>.*?</#(?:[a-z]+)>|\\[#--.*?--\\]|\\[#(?:[a-z]+)\\s[^\\]]*\\].*?\\[#(?:[a-z]+)\\])"))},Rule { languages: &[FileType::Fluent], pattern: Some(Pattern::Positive("^-?[a-zA-Z][a-zA-Z0-9_-]* *=|\\{\\$-?[a-zA-Z][-\\w]*(?:\\.[a-zA-Z][-\\w]*)?\\}"))},]),
        (".cls", &[Rule { languages: &[FileType::Vb], pattern: Some(Pattern::And(&[Pattern::Positive("^[ ]*VERSION [0-9]\\.[0-9] CLASS"),Pattern::Positive("^\\s*BEGIN(?:\\r?\\n|\\r)\\s*MultiUse\\s*=.*(?:\\r?\\n|\\r)\\s*Persistable\\s*="),]))},Rule { languages: &[FileType::Vim], pattern: Some(Pattern::Positive("^[ ]*VERSION [0-9]\\.[0-9] CLASS"))},Rule { languages: &[FileType::Tex], pattern: Some(Pattern::Positive("^\\s*\\\\(?:NeedsTeXFormat|ProvidesClass)\\{"))},Rule { languages: &[FileType::Objectscript], pattern: Some(Pattern::Positive("^Class\\s"))},Rule { languages: &[FileType::Progress], pattern: Some(Pattern::Positive("(?i)^\\s*(?:end\\s+(?:class|interface)\\.|(?:class|interface)\\s+[a-z_][a-z0-9_#$%&-]*:)"))},]),
        (".tlv", &[Rule { languages: &[FileType::TlVerilog], pattern: Some(Pattern::Positive("^\\\\.{0,10}TLV_version"))},]),
        (".m", &[Rule { languages: &[FileType::ObjC], pattern: Some(Pattern::Positive("^\\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\\b|#import\\s+.+\\.h[\">])"))},Rule { languages: &[FileType::Moo], pattern: Some(Pattern::Positive(":- module"))},Rule { languages: &[FileType::Muf], pattern: Some(Pattern::Positive("^: "))},Rule { languages: &[FileType::Mumps], pattern: Some(Pattern::Positive("^\\s*;"))},Rule { languages: &[FileType::Mma], pattern: Some(Pattern::And(&[Pattern::Positive("\\(\\*"),Pattern::Positive("\\*\\)$"),]))},Rule { languages: &[FileType::Matlab], pattern: Some(Pattern::Positive("^\\s*%"))},Rule { languages: &[FileType::Limbo], pattern: Some(Pattern::Positive("^\\w+\\s*:\\s*module\\s*\\{"))},]),
        (".9", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^\\.(?:[A-Za-z]{2}(?:\\s|$)|\\\\\")"))},Rule { languages: &[FileType::Text], pattern: None},]),
        (".for", &[Rule { languages: &[FileType::Forth], pattern: Some(Pattern::Positive("^: "))},Rule { languages: &[FileType::Fortran], pattern: Some(Pattern::Positive("^(?i:[c*][^abd-z]|      (subroutine|program|end|data)\\s|\\s*!)"))},]),
        (".1m", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: None},]),
        (".app", &[Rule { languages: &[FileType::Erlang], pattern: Some(Pattern::Positive("^\\{\\s*(?:application|'application')\\s*,\\s*(?:[a-z]+[\\w@]*|'[^']+')\\s*,\\s*\\[(?:.|[\\r\\n])*\\]\\s*\\}\\.[ \\t]*$"))},]),
        (".pod", &[Rule { languages: &[FileType::Pod], pattern: Some(Pattern::Positive("^[\\s&&[^\\r\\n]]*=(comment|begin pod|begin para|item\\d+)"))},Rule { languages: &[FileType::Pod], pattern: None},]),
        (".yml", &[Rule { languages: &[FileType::Yaml], pattern: Some(Pattern::Positive("^\\t+.*?[^\\s:].*?:"))},Rule { languages: &[FileType::Yaml], pattern: Some(Pattern::Positive("swagger:\\s?'?\"?2.[0-9.]+'?\"?"))},Rule { languages: &[FileType::Yaml], pattern: Some(Pattern::Positive("openapi:\\s?'?\"?3.[0-9.]+'?\"?"))},Rule { languages: &[FileType::Yaml], pattern: None},]),
        (".1x", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: None},]),
        (".s", &[Rule { languages: &[FileType::Gas], pattern: Some(Pattern::Positive("(?i:mov[lq]?)\\s+[%\\$]"))},Rule { languages: &[FileType::Nasm], pattern: Some(Pattern::Positive("(?i:mov)\\s+[^\\s%]{2,},"))},Rule { languages: &[FileType::M68k], pattern: Some(Pattern::Or(&[Pattern::Positive("(?im)\\bmoveq(?:\\.l)?\\s+#(?:\\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\\s*d[0-7]\\b"),Pattern::Positive("(?im)^\\s*move(?:\\.[bwl])?\\s+(?:sr|usp),\\s*[^\\s]+"),Pattern::Positive("(?im)^\\s*move\\.[bwl]\\s+.*\\b[ad]\\d"),Pattern::Positive("(?im)^\\s*movem\\.[bwl]\\b"),Pattern::Positive("(?im)^\\s*move[mp](?:\\.[wl])?\\b"),Pattern::Positive("(?im)^\\s*btst\\b"),Pattern::Positive("(?im)^\\s*dbra\\b"),]))},]),
        (".8", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^\\.(?:[A-Za-z]{2}(?:\\s|$)|\\\\\")"))},Rule { languages: &[FileType::Text], pattern: None},]),
        (".resource", &[Rule { languages: &[FileType::Robot], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\*{3} (Settings|Variables|Keywords) \\*{3}$"),]))},]),
        (".x", &[Rule { languages: &[FileType::Rpcgen], pattern: Some(Pattern::Positive("^xof 030(2|3)(?:txt|bin|tzip|bzip)\\b"))},Rule { languages: &[FileType::Rpcgen], pattern: Some(Pattern::Positive("\\b(program|version)\\s+\\w+\\s*\\{|\\bunion\\s+\\w+\\s+switch\\s*\\("))},Rule { languages: &[FileType::Rpcgen], pattern: Some(Pattern::Positive("^%(end|ctor|hook|group)\\b"))},Rule { languages: &[FileType::Ld], pattern: Some(Pattern::Positive("OUTPUT_ARCH\\(|OUTPUT_FORMAT\\(|SECTIONS"))},]),
        (".3m", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: None},]),
        (".w", &[Rule { languages: &[FileType::Progress], pattern: Some(Pattern::Positive("&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS"))},Rule { languages: &[FileType::Cweb], pattern: Some(Pattern::Positive("^@(<|\\w+\\.)"))},]),
        (".3p", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: None},]),
        (".rpy", &[Rule { languages: &[FileType::Python], pattern: Some(Pattern::Positive("^(import|from|class|def)\\s"))},Rule { languages: &[FileType::Renpy], pattern: None},]),
        (".al", &[Rule { languages: &[FileType::Perl], pattern: Some(Pattern::And(&[Pattern::Positive("\\b(?i:(CODEUNIT|PAGE|PAGEEXTENSION|PAGECUSTOMIZATION|DOTNET|ENUM|ENUMEXTENSION|VALUE|QUERY|REPORT|TABLE|TABLEEXTENSION|XMLPORT|PROFILE|CONTROLADDIN|REPORTEXTENSION|INTERFACE|PERMISSIONSET|PERMISSIONSETEXTENSION|ENTITLEMENT))\\b"),]))},Rule { languages: &[FileType::Perl], pattern: None},]),
        (".mod", &[Rule { languages: &[FileType::Xml], pattern: Some(Pattern::Positive("<!ENTITY "))},Rule { languages: &[FileType::Nmodl], pattern: Some(Pattern::Positive("\\b(NEURON|INITIAL|UNITS)\\b"))},Rule { languages: &[FileType::Modula2], pattern: Some(Pattern::Positive("^\\s*(?i:MODULE|END) [\\w\\.]+;"))},Rule { languages: &[FileType::LinuxKernelModule, FileType::Ampl], pattern: None},]),
        (".f", &[Rule { languages: &[FileType::Forth], pattern: Some(Pattern::Positive("^: "))},Rule { languages: &[FileType::Fortran], pattern: Some(Pattern::Positive("flowop"))},Rule { languages: &[FileType::Fortran], pattern: Some(Pattern::Positive("^(?i:[c*][^abd-z]|      (subroutine|program|end|data)\\s|\\s*!)"))},]),
        (".csl", &[Rule { languages: &[FileType::Xml], pattern: Some(Pattern::Positive("(?i:^\\s*(<\\?xml|xmlns))"))},Rule { languages: &[FileType::Kusto], pattern: Some(Pattern::Positive("(^\\|\\s*(where|extend|project|limit|summarize))|(^\\.\\w+)"))},]),
        (".tl", &[Rule { languages: &[FileType::Teal], pattern: Some(Pattern::And(&[Pattern::Positive("--.*"),Pattern::Positive("\\b(local|function|end|record|interface|enum)\\b"),]))},Rule { languages: &[FileType::Teal], pattern: None},]),
        (".man", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: None},]),
        (".nu", &[Rule { languages: &[FileType::Nu], pattern: Some(Pattern::Positive("^\\s*(import|export|module|def|let|let-env) "))},Rule { languages: &[FileType::Nu], pattern: None},]),
        (".1", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^\\.(?:[A-Za-z]{2}(?:\\s|$)|\\\\\")"))},Rule { languages: &[FileType::Text], pattern: None},]),
        (".odin", &[Rule { languages: &[FileType::Odin], pattern: Some(Pattern::Positive("(?:^|<)\\s*[A-Za-z0-9_]+\\s*=\\s*<"))},Rule { languages: &[FileType::Odin], pattern: Some(Pattern::Positive("package\\s+\\w+|\\b(?:im|ex)port\\s*\"[\\w:./]+\"|\\w+\\s*::\\s*(?:proc|struct)\\s*\\(|^\\s*//\\s"))},]),
        (".html", &[Rule { languages: &[FileType::Ecmarkdown], pattern: Some(Pattern::Positive("<emu-(?:alg|annex|biblio|clause|eqn|example|figure|gann|gmod|gprose|grammar|intro|not-ref|note|nt|prodref|production|rhs|table|t|xref)(?:$|\\s|>)"))},Rule { languages: &[FileType::Html], pattern: None},]),
        (".nl", &[Rule { languages: &[FileType::Nl], pattern: Some(Pattern::Positive("^(b|g)[0-9]+ "))},Rule { languages: &[FileType::Lisp], pattern: None},]),
        (".fr", &[Rule { languages: &[FileType::Forth], pattern: Some(Pattern::Positive("^(: |also |new-device|previous )"))},Rule { languages: &[FileType::Frege], pattern: Some(Pattern::Positive("^\\s*(import|module|package|data|type) "))},Rule { languages: &[FileType::Text], pattern: None},]),
        (".lean", &[Rule { languages: &[FileType::Lean], pattern: Some(Pattern::Positive("^import [a-z]"))},Rule { languages: &[FileType::Lean], pattern: Some(Pattern::Positive("^import [A-Z]"))},]),
        (".bb", &[Rule { languages: &[FileType::Bitbake], pattern: Some(Pattern::Positive("(<^\\s*; |End Function)"))},Rule { languages: &[FileType::Bitbake], pattern: Some(Pattern::Positive("^(# |include|require|inherit)\\b"))},Rule { languages: &[FileType::Clojure], pattern: Some(Pattern::Positive("\\((def|defn|defmacro|let)\\s"))},]),
        (".svx", &[Rule { languages: &[FileType::SurvexData], pattern: Some(Pattern::Positive("\\A(;|\\*[^*]+$)"))},Rule { languages: &[FileType::Mdsvex], pattern: None},]),
        (".json", &[Rule { languages: &[FileType::Json], pattern: Some(Pattern::Positive("\"swagger\":\\s?\"2.[0-9.]+\""))},Rule { languages: &[FileType::Json], pattern: Some(Pattern::Positive("\"openapi\":\\s?\"3.[0-9.]+\""))},Rule { languages: &[FileType::Json], pattern: None},]),
        (".tpl", &[Rule { languages: &[FileType::Template], pattern: Some(Pattern::Positive("\\{\\{-?\\s*(\\`?\\\"\\\\?\\\"?|\\/\\*\\s|\\w*)\\b"))},Rule { languages: &[FileType::Smarty], pattern: Some(Pattern::Positive("(?<!\\{)\\{(\\*\\s|\\$|\\/)?\\w*\\b"))},]),
        (".bf", &[Rule { languages: &[FileType::Beef], pattern: Some(Pattern::Positive("(?-m)^\\s*using\\s+(System|Beefy)(\\.(.*))?;\\s*$"))},Rule { languages: &[FileType::Hyphy], pattern: Some(Pattern::Or(&[Pattern::Positive("(?-m)^\\s*#include\\s+\".*\";\\s*$"),Pattern::Positive("\\sfprintf\\s*\\("),]))},Rule { languages: &[FileType::Brainfuck], pattern: Some(Pattern::Positive("(>\\+>|>\\+<)"))},]),
        (".7", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^\\.(?:[A-Za-z]{2}(?:\\s|$)|\\\\\")"))},Rule { languages: &[FileType::Text], pattern: None},]),
        (".yaml", &[Rule { languages: &[FileType::Yaml], pattern: Some(Pattern::Positive("^\\t+.*?[^\\s:].*?:"))},Rule { languages: &[FileType::Yaml], pattern: Some(Pattern::Positive("swagger:\\s?'?\"?2.[0-9.]+'?\"?"))},Rule { languages: &[FileType::Yaml], pattern: Some(Pattern::Positive("openapi:\\s?'?\"?3.[0-9.]+'?\"?"))},Rule { languages: &[FileType::Yaml], pattern: None},]),
        (".pm", &[Rule { languages: &[FileType::Perl], pattern: Some(Pattern::And(&[Pattern::Negative("^\\s*use\\s+v6\\b"),Pattern::Or(&[Pattern::Positive("\\buse\\s+(?:strict\\b|v?5\\b)"),Pattern::Positive("^\\s*use\\s+(?:constant|overload)\\b"),Pattern::Positive("^\\s*(?:\\*|(?:our\\s*)?@)EXPORT\\s*="),Pattern::Positive("^\\s*package\\s+[^\\W\\d]\\w*(?:::\\w+)*\\s*(?:[;{]|\\sv?\\d)"),Pattern::Positive("[\\s$][^\\W\\d]\\w*(?::\\w+)*->[a-zA-Z_\\[({]"),]),]))},Rule { languages: &[FileType::Raku], pattern: Some(Pattern::Positive("^\\s*(?:use\\s+v6\\b|\\bmodule\\b|\\b(?:my\\s+)?class\\b)"))},Rule { languages: &[FileType::Xpm], pattern: Some(Pattern::Positive("^\\s*\\/\\* XPM \\*\\/"))},]),
        (".lsp", &[Rule { languages: &[FileType::Lisp], pattern: Some(Pattern::Positive("^\\s*\\((?i:defun|in-package|defpackage) "))},Rule { languages: &[FileType::Lisp], pattern: Some(Pattern::Positive("^\\s*\\(define "))},]),
        (".q", &[Rule { languages: &[FileType::Q], pattern: Some(Pattern::Positive("((?i:[A-Z.][\\w.]*:\\{)|^\\\\(cd?|d|l|p|ts?) )"))},Rule { languages: &[FileType::Hiveql], pattern: Some(Pattern::Positive("(?i:SELECT\\s+[\\w*,]+\\s+FROM|(CREATE|ALTER|DROP)\\s(DATABASE|SCHEMA|TABLE))"))},]),
        (".g", &[Rule { languages: &[FileType::Gap], pattern: Some(Pattern::Positive("\\s*(Declare|BindGlobal|KeyDependentOperation|Install(Method|GlobalFunction)|SetPackageInfo)"))},Rule { languages: &[FileType::Pccts], pattern: Some(Pattern::Positive("^[MG][0-9]+(?:\\r?\\n|\\r)"))},]),
        (".mask", &[Rule { languages: &[FileType::Radiance], pattern: Some(Pattern::Positive("tag:unity3d.com"))},]),
        (".ms", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^[.'][A-Za-z]{2}(\\s|$)"))},Rule { languages: &[FileType::Gas], pattern: Some(Pattern::And(&[Pattern::Negative("/\\*"),Pattern::Positive("^\\s*\\.(?:include\\s|globa?l\\s|[A-Za-z][_A-Za-z0-9]*:)"),]))},Rule { languages: &[FileType::Maxscript], pattern: None},]),
        (".bs", &[Rule { languages: &[FileType::Brighterscript], pattern: Some(Pattern::Positive("^(?i:<pre\\s+class)\\s*=\\s*('|\\\"|\\b)metadata\\b('|\\\"|\\b)[^>\\r\\n]*>"))},Rule { languages: &[FileType::Brighterscript], pattern: Some(Pattern::Or(&[Pattern::Positive("(?i:^\\s*(?:sub\\s*\\w+\\(.*?\\))|(?::\\s*sub\\(.*?\\))$)"),Pattern::Positive("(?i:^\\s*(end\\ssub)$)"),Pattern::Positive("(?i:^\\s*(?:function\\s*\\w+\\(.*?\\)\\s*as\\s*\\w*)|(?::\\s*function\\(.*?\\)\\s*as\\s*\\w*)$)"),Pattern::Positive("(?i:^\\s*(end\\sfunction)$)"),]))},Rule { languages: &[FileType::Brighterscript], pattern: Some(Pattern::Positive("^package\\s+[A-Za-z_][A-Za-z0-9_']*(?:\\s*\\(|\\s+where)"))},]),
        (".msg", &[Rule { languages: &[FileType::OmnetppMsg], pattern: Some(Pattern::Positive("^cplusplus\\(?[\\S]*\\)?[\\s]*\\{?\\{?|^namespace[\\s]+([^.\\s]*\\.)*[^.\\s]*;|^struct[\\s]+[\\S]+|^message[\\s]+[\\S]+(extends )?[\\S]*[\\s]*|^packet[\\s]+[\\S]+|^class[\\s]+[\\S]+(extends )?[\\S]*[\\s]*|^enum[\\s]+[\\S]+|^import ([^.\\s]*\\.)*[^.\\s]*;"))},Rule { languages: &[FileType::Privoxy], pattern: Some(Pattern::And(&[Pattern::Positive("(?i)^[a-z]\\w*(?:\\/[a-z]\\w*)?(?:<=\\d+)?(?:\\[(?:<=\\d+)?\\])?\\s+\\w+\\b"),Pattern::Negative("^\\s*[^\\s@#\\w-]"),]))},]),
        (".6", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^\\.(?:[A-Za-z]{2}(?:\\s|$)|\\\\\")"))},Rule { languages: &[FileType::Text], pattern: None},]),
        (".sql", &[Rule { languages: &[FileType::Plpgsql], pattern: Some(Pattern::Positive("(?i:^\\\\i\\b|AS\\s+\\$\\$|LANGUAGE\\s+'?plpgsql'?|BEGIN(\\s+WORK)?\\s*;)"))},Rule { languages: &[FileType::Sqlpl], pattern: Some(Pattern::Positive("(?i:ALTER\\s+MODULE|MODE\\s+DB2SQL|\\bSYS(CAT|PROC)\\.|ASSOCIATE\\s+RESULT\\s+SET|\\bEND!\\s*$)"))},Rule { languages: &[FileType::Plsql], pattern: Some(Pattern::Positive("(?i:\\$\\$PLSQL_|XMLTYPE|systimestamp|\\.nextval|CONNECT\\s+BY|AUTHID\\s+(DEFINER|CURRENT_USER)|constructor\\W+function)"))},Rule { languages: &[FileType::Tsql], pattern: Some(Pattern::Positive("(?i:^\\s*GO\\b|BEGIN(\\s+TRY|\\s+CATCH)|OUTPUT\\s+INSERTED|DECLARE\\s+@|\\[dbo\\])"))},Rule { languages: &[FileType::Sql], pattern: None},]),
        (".ls", &[Rule { languages: &[FileType::Loomscript], pattern: Some(Pattern::Positive("^\\s*package\\s*[\\w\\.\\/\\*\\s]*\\s*\\{"))},Rule { languages: &[FileType::LiveScript], pattern: None},]),
        (".ts", &[Rule { languages: &[FileType::Xml], pattern: Some(Pattern::Positive("<TS\\b"))},Rule { languages: &[FileType::TypeScript], pattern: None},]),
        (".re", &[Rule { languages: &[FileType::Reason], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*module\\s+type\\s"),Pattern::Positive("^\\s*(?:include|open)\\s+\\w+\\s*;\\s*$"),Pattern::Positive("^\\s*let\\s+(?:module\\s\\w+\\s*=\\s*\\{|\\w+:\\s+.*=.*;\\s*$)"),]))},Rule { languages: &[FileType::Cpp], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*#(?:(?:if|ifdef|define|pragma)\\s+\\w|\\s*include\\s+<[^>]+>)"),Pattern::Positive("^\\s*template\\s*<"),]))},]),
        (".2", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^\\.(?:[A-Za-z]{2}(?:\\s|$)|\\\\\")"))},Rule { languages: &[FileType::Text], pattern: None},]),
        (".pro", &[Rule { languages: &[FileType::Proguard], pattern: Some(Pattern::Positive("^-(include\\b.*\\.pro$|keep\\b|keepclassmembers\\b|keepattributes\\b)"))},Rule { languages: &[FileType::Prolog], pattern: Some(Pattern::Positive("^[^\\[#]+:-"))},Rule { languages: &[FileType::ConfIni], pattern: Some(Pattern::Positive("last_client="))},Rule { languages: &[FileType::Qmake], pattern: Some(Pattern::And(&[Pattern::Positive("HEADERS"),Pattern::Positive("SOURCES"),]))},Rule { languages: &[FileType::Idl], pattern: Some(Pattern::Positive("^\\s*(?i:function|pro|compile_opt) \\w[ \\w,:]*$"))},]),
        (".mc", &[Rule { languages: &[FileType::Win32MessageFile], pattern: Some(Pattern::Positive("(?i)^[ \\t]*(\\/\\*\\s*)?MessageId=|^\\.$"))},Rule { languages: &[FileType::M4], pattern: Some(Pattern::Positive("^dnl|^divert\\((?:-?\\d+)?\\)|^\\w+\\(`[^\\r\\n]*?'[),]"))},Rule { languages: &[FileType::MonkeyC], pattern: Some(Pattern::Positive("\\b(?:using|module|function|class|var)\\s+\\w"))},]),
        (".h", &[Rule { languages: &[FileType::ObjC], pattern: Some(Pattern::Positive("^\\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\\b|#import\\s+.+\\.h[\">])"))},Rule { languages: &[FileType::Cpp], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*#\\s*include <(cstdint|string|vector|map|list|array|bitset|queue|stack|forward_list|unordered_map|unordered_set|(i|o|io)stream)>"),Pattern::Positive("^\\s*template\\s*<"),Pattern::Positive("^[ \\t]*(try|constexpr)"),Pattern::Positive("^[ \\t]*catch\\s*\\("),Pattern::Positive("^[ \\t]*(class|(using[ \\t]+)?namespace)\\s+\\w+"),Pattern::Positive("^[ \\t]*(private|public|protected):$"),Pattern::Positive("__has_cpp_attribute|__cplusplus >"),Pattern::Positive("std::\\w+"),]))},Rule { languages: &[FileType::C], pattern: None},Rule { languages: &[FileType::C], pattern: None},]),
        (".qs", &[Rule { languages: &[FileType::Q], pattern: Some(Pattern::Positive("^((\\/{2,3})?\\s*(namespace|operation)\\b)"))},Rule { languages: &[FileType::QtScript], pattern: Some(Pattern::Positive("(\\w+\\.prototype\\.\\w+|===|\\bvar\\b)"))},]),
        (".alg", &[Rule { languages: &[FileType::Algol], pattern: Some(Pattern::Or(&[Pattern::Positive("(?i)^comment\\b.*(;|comment)"),Pattern::Positive("^#[^#\\r\\n]+#$"),Pattern::Positive("(?i)\\b(integer|real|boolean|string)\\b\\s+\\w+\\s*:=\\s*"),Pattern::Positive("(?i)^begin[\\s\\S]*^end"),]))},]),
        (".3", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^\\.(?:[A-Za-z]{2}(?:\\s|$)|\\\\\")"))},Rule { languages: &[FileType::Text], pattern: None},]),
        (".srv", &[Rule { languages: &[FileType::Privoxy], pattern: Some(Pattern::And(&[Pattern::Positive("(?i)^[a-z]\\w*(?:\\/[a-z]\\w*)?(?:<=\\d+)?(?:\\[(?:<=\\d+)?\\])?\\s+\\w+\\b"),Pattern::Positive("^---\\s*$"),Pattern::Negative("^\\s*[^\\s@#\\w-]"),]))},]),
        (".1in", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: None},]),
        (".plist", &[Rule { languages: &[FileType::XmlPropertyList], pattern: Some(Pattern::Positive("^\\s*(?:<\\?xml\\s|<!DOCTYPE\\s+plist|<plist(?:\\s+version\\s*=\\s*[\"']\\d+(?:\\.\\d+)?[\"'])?\\s*>\\s*$)"))},Rule { languages: &[FileType::OpenstepPropertyList], pattern: None},]),
        (".gml", &[Rule { languages: &[FileType::Xml], pattern: Some(Pattern::Positive("(?i:^\\s*(<\\?xml|xmlns))"))},Rule { languages: &[FileType::GraphModelingLanguage], pattern: Some(Pattern::Positive("(?i:^\\s*(graph|node)\\s+\\[$)"))},Rule { languages: &[FileType::TypeScriptGlimmer], pattern: Some(Pattern::Positive("^[DGMT][0-9]{2}\\*$"))},Rule { languages: &[FileType::GameMakerLanguage], pattern: None},]),
        (".k", &[Rule { languages: &[FileType::Kcl], pattern: Some(Pattern::Or(&[Pattern::Positive("^schema [A-Za-z0-9_-]+"),Pattern::Positive("^\\}$"),Pattern::Positive("\\s*\\}\\s*"),]))},Rule { languages: &[FileType::Kwt], pattern: Some(Pattern::Or(&[Pattern::Positive("^requires\\s+\"[^\"]+\"$"),Pattern::Positive("^syntax\\s+\\w+\\s+::=.*"),Pattern::Positive("^endmodule$"),]))},]),
        (".gs", &[Rule { languages: &[FileType::Glsl], pattern: Some(Pattern::Positive("^#version\\s+[0-9]+\\b"))},Rule { languages: &[FileType::Grads], pattern: Some(Pattern::Positive("^uses (java|gw)\\."))},Rule { languages: &[FileType::Grads], pattern: Some(Pattern::Positive("^\\[indent=[0-9]+\\]"))},]),
        (".tag", &[Rule { languages: &[FileType::Jsp], pattern: Some(Pattern::Positive("<%[@!=\\s]?\\s*(taglib|tag|include|attribute|variable)\\s"))},]),
        (".t", &[Rule { languages: &[FileType::Perl], pattern: Some(Pattern::And(&[Pattern::Negative("^\\s*use\\s+v6\\b"),Pattern::Or(&[Pattern::Positive("\\buse\\s+(?:strict\\b|v?5\\b)"),Pattern::Positive("^\\s*use\\s+(?:constant|overload)\\b"),Pattern::Positive("^\\s*(?:\\*|(?:our\\s*)?@)EXPORT\\s*="),Pattern::Positive("^\\s*package\\s+[^\\W\\d]\\w*(?:::\\w+)*\\s*(?:[;{]|\\sv?\\d)"),Pattern::Positive("[\\s$][^\\W\\d]\\w*(?::\\w+)*->[a-zA-Z_\\[({]"),]),]))},Rule { languages: &[FileType::Raku], pattern: Some(Pattern::Positive("^\\s*(?:use\\s+v6\\b|\\bmodule\\b|\\bmy\\s+class\\b)"))},Rule { languages: &[FileType::Turing], pattern: Some(Pattern::Positive("^\\s*%[ \\t]+|^\\s*var\\s+\\w+(\\s*:\\s*\\w+)?\\s*:=\\s*\\w+"))},]),
        (".cairo", &[Rule { languages: &[FileType::Cairo], pattern: Some(Pattern::Positive("(^(\\s*)%lang(\\s+)([A-Za-z0-9_]+))|(^(\\s*)%builtins(\\s+)([A-Za-z0-9_]+\\s*)*$)|(^(\\s*)from(\\s+)starkware\\.(cairo|starknet)\\.([A-Za-z0-9_.\\s]+?)import)|(,\\s*ap\\+\\+;$)|(;\\s*ap\\+\\+$)"))},Rule { languages: &[FileType::Cairo], pattern: None},]),
        (".tst", &[Rule { languages: &[FileType::Gap], pattern: Some(Pattern::Positive("gap> "))},Rule { languages: &[FileType::Scilab], pattern: None},]),
        (".pl", &[Rule { languages: &[FileType::Prolog], pattern: Some(Pattern::Positive("^[^#]*:-"))},Rule { languages: &[FileType::Perl], pattern: Some(Pattern::And(&[Pattern::Negative("^\\s*use\\s+v6\\b"),Pattern::Or(&[Pattern::Positive("\\buse\\s+(?:strict\\b|v?5\\b)"),Pattern::Positive("^\\s*use\\s+(?:constant|overload)\\b"),Pattern::Positive("^\\s*(?:\\*|(?:our\\s*)?@)EXPORT\\s*="),Pattern::Positive("^\\s*package\\s+[^\\W\\d]\\w*(?:::\\w+)*\\s*(?:[;{]|\\sv?\\d)"),Pattern::Positive("[\\s$][^\\W\\d]\\w*(?::\\w+)*->[a-zA-Z_\\[({]"),]),]))},Rule { languages: &[FileType::Raku], pattern: Some(Pattern::Positive("^\\s*(?:use\\s+v6\\b|\\bmodule\\b|\\b(?:my\\s+)?class\\b)"))},]),
        (".ex", &[Rule { languages: &[FileType::Elixir], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*@moduledoc\\s"),Pattern::Positive("^\\s*(?:cond|import|quote|unless)\\s"),Pattern::Positive("^\\s*def(?:exception|impl|macro|module|protocol)[(\\s]"),]))},Rule { languages: &[FileType::Euphoria], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*namespace\\s"),Pattern::Positive("^\\s*(?:public\\s+)?include\\s"),Pattern::Positive("^\\s*(?:(?:public|export|global)\\s+)?(?:atom|constant|enum|function|integer|object|procedure|sequence|type)\\s"),]))},]),
        (".i", &[Rule { languages: &[FileType::M68k], pattern: Some(Pattern::Or(&[Pattern::Positive("(?im)\\bmoveq(?:\\.l)?\\s+#(?:\\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\\s*d[0-7]\\b"),Pattern::Positive("(?im)^\\s*move(?:\\.[bwl])?\\s+(?:sr|usp),\\s*[^\\s]+"),Pattern::Positive("(?im)^\\s*move\\.[bwl]\\s+.*\\b[ad]\\d"),Pattern::Positive("(?im)^\\s*movem\\.[bwl]\\b"),Pattern::Positive("(?im)^\\s*move[mp](?:\\.[wl])?\\b"),Pattern::Positive("(?im)^\\s*btst\\b"),Pattern::Positive("(?im)^\\s*dbra\\b"),]))},Rule { languages: &[FileType::Swig], pattern: Some(Pattern::Positive("^[ \\t]*%[a-z_]+\\b|^%[{}]$"))},Rule { languages: &[FileType::Nasm], pattern: Some(Pattern::Or(&[Pattern::Positive("(?i)mov\\s+[^\\s]+,"),Pattern::Positive("^\\s+(i?)db\\s+[a-z\\d]"),]))},]),
        (".nr", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^\\."))},Rule { languages: &[FileType::Nroff], pattern: None},]),
        (".as", &[Rule { languages: &[FileType::Actionscript], pattern: Some(Pattern::Positive("^\\s*(?:package(?:\\s+[\\w.]+)?\\s+(?:\\{|$)|import\\s+[\\w.*]+\\s*;|(?:intrinsic\\s+)class\\s+[\\w<>.]+|\\s+class\\s+extends\\s+[\\w<>.]+|(?:(?:public|protected|private|static)\\s+)*(?:(?:var|const|local)\\s+\\w+\\s*:\\s*[\\w<>.]+(?:\\s*=.*)?\\s*;|function\\s+\\w+\\s*\\((?:\\s*\\w+\\s*:\\s*[\\w<>.]+\\s*(,\\s*\\w+\\s*:\\s*[\\w<>.]+\\s*)*)?\\)))"))},]),
        (".pkl", &[Rule { languages: &[FileType::Pkl], pattern: Some(Pattern::Or(&[Pattern::Positive("^\\s*(module|import|amends|extends|local|const|fixed|abstract|open|class|typealias|@\\w+)\\b"),Pattern::Positive("^\\s*[a-zA-Z0-9_$]+\\s*(=|{|:)|^\\s*`[^`]+`\\s*(=|{|:)|for\\s*\\(|when\\s*\\("),]))},Rule { languages: &[FileType::Pkl], pattern: None},]),
        (".srt", &[Rule { languages: &[FileType::Srt], pattern: Some(Pattern::Positive("^(\\d{2}:\\d{2}:\\d{2},\\d{3})\\s*(-->)\\s*(\\d{2}:\\d{2}:\\d{2},\\d{3})$"))},]),
        (".pp", &[Rule { languages: &[FileType::Pascal], pattern: Some(Pattern::Positive("^\\s*end[.;]"))},Rule { languages: &[FileType::Puppet], pattern: Some(Pattern::Positive("^\\s+\\w+\\s+=>\\s"))},]),
        (".scd", &[Rule { languages: &[FileType::Supercollider], pattern: Some(Pattern::Positive("(?i:\\^(this|super)\\.|^\\s*(~\\w+\\s*=\\.|SynthDef\\b))"))},Rule { languages: &[FileType::Markdown], pattern: Some(Pattern::Positive("^#+\\s+(NAME|SYNOPSIS|DESCRIPTION)"))},]),
        (".sol", &[Rule { languages: &[FileType::Solidity], pattern: Some(Pattern::Positive("\\bpragma\\s+solidity\\b|\\b(?:abstract\\s+)?contract\\s+[a-zA-Z$_][a-zA-Z0-9$_]*(?:\\s+is\\s+(?:[a-zA-Z0-9$_][^\\{]*?)?)?\\s*\\{"))},Rule { languages: &[FileType::TypeScriptGlimmer], pattern: Some(Pattern::Positive("^[DGMT][0-9]{2}\\*(?:\\r?\\n|\\r)"))},]),
        (".l", &[Rule { languages: &[FileType::Lisp], pattern: Some(Pattern::Positive("\\(def(un|macro)\\s"))},Rule { languages: &[FileType::Lex], pattern: Some(Pattern::Positive("^(%[%{}]xs|<.*>)"))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^\\.[A-Za-z]{2}(\\s|$)"))},Rule { languages: &[FileType::Lex], pattern: Some(Pattern::Positive("^\\((de|class|rel|code|data|must)\\s"))},]),
        (".5", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^\\.(?:[A-Za-z]{2}(?:\\s|$)|\\\\\")"))},Rule { languages: &[FileType::Text], pattern: None},]),
        (".p", &[Rule { languages: &[FileType::GnuPlot], pattern: Some(Pattern::Or(&[Pattern::Positive("^s?plot\\b"),Pattern::Positive("^set\\s+(term|terminal|out|output|[xy]tics|[xy]label|[xy]range|style)\\b"),]))},Rule { languages: &[FileType::Progress], pattern: Some(Pattern::Or(&[Pattern::Positive("(?i)\\bDEFINE\\s+(?:VARIABLE|TEMP-TABLE|BUFFER|QUERY|INPUT\\s+PARAMETER|OUTPUT\\s+PARAMETER)\\b"),Pattern::Positive("(?i)\\bEND(?:\\s+(?:PROCEDURE|FUNCTION|DO|FOR\\s+EACH))?\\."),]))},]),
        (".md", &[Rule { languages: &[FileType::Markdown], pattern: Some(Pattern::Or(&[Pattern::Positive("(^[-A-Za-z0-9=#!\\*\\[|>])|<\\/"),Pattern::Positive("\\A\\z"),]))},Rule { languages: &[FileType::Markdown], pattern: Some(Pattern::Positive("^(;;|\\(define_)"))},Rule { languages: &[FileType::Markdown], pattern: None},]),
        (".3x", &[Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"),Pattern::Positive("^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*Sh +(?:[^\"\\s]|\"[^\"]+\")"),]))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::And(&[Pattern::Positive("^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"),Pattern::Positive("^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"),]))},Rule { languages: &[FileType::Nroff], pattern: None},]),
        (".m4", &[Rule { languages: &[FileType::Config], pattern: Some(Pattern::Or(&[Pattern::Positive("AC_DEFUN|AC_PREREQ|AC_INIT"),Pattern::Positive("^_?m4_"),]))},Rule { languages: &[FileType::M4], pattern: None},]),
        (".rno", &[Rule { languages: &[FileType::Runoff], pattern: Some(Pattern::Positive("(?i:^\\.!|^\\f|\\f$|^\\.end lit(?:eral)?\\b|^\\.[a-zA-Z].*?;\\.[a-zA-Z](?:[; \\t])|\\^\\*[^\\s*][^*]*\\\\\\*(?:$|\\s)|^\\.c;[ \\t]*\\w+)"))},Rule { languages: &[FileType::Nroff], pattern: Some(Pattern::Positive("^\\.\\\\\" "))},]),
        (".gd", &[Rule { languages: &[FileType::Gap], pattern: Some(Pattern::Positive("\\s*(Declare|BindGlobal|KeyDependentOperation)"))},Rule { languages: &[FileType::GdScript], pattern: Some(Pattern::Positive("\\s*(extends|var|const|enum|func|class|signal|tool|yield|assert|onready)"))},]),
        (".url", &[Rule { languages: &[FileType::ConfIni], pattern: Some(Pattern::Positive("^\\[InternetShortcut\\](?:\\r?\\n|\\r)([^\\s\\[][^\\r\\n]*(?:\\r?\\n|\\r)){0,20}URL="))},]),
        (".yy", &[Rule { languages: &[FileType::Json], pattern: Some(Pattern::Positive("\\A\\s*[{\\[]"))},Rule { languages: &[FileType::Yacc], pattern: None},]),
    ],
};