name: XHTML 1.0 Strict scopeName: text.html.xhtml.1-strict repository:

tag-textarea: 
  endCaptures: 
    "1": 
      name: meta.tag.form.textarea.html
    "4": 
      name: entity.name.tag.form.textarea.html
  begin: (<(textarea)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.form.textarea.html
    "2": 
      name: entity.name.tag.form.textarea.html
  end: ((/>)|((textarea)>))
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.form.textarea.html
    begin: (?<=[^/]>)
    end: (</(?=option))
    patterns: 
    - include: "#pcdata"
  - name: meta.tag.form.textarea.html
    begin: ""
    end: ((?=/>)|>)
    patterns: 
    - include: "#attribute-cols"
    - include: "#attribute-disabled"
    - include: "#attribute-name"
    - include: "#attribute-onchange"
    - include: "#attribute-onselect"
    - include: "#attribute-readonly"
    - include: "#attribute-rows"
    - include: "#attributes-group-common"
    - include: "#attributes-group-focus"
    - include: "#attributes-illegal_char"
tag-h3: 
  captures: 
    "1": 
      name: meta.tag.block.h3.html
    "2": 
      name: entity.name.tag.block.h3.html
  begin: (<(h3)\b)
  end: ((h3)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.h3.html
    begin: (?<=>)
    end: (</(?=h3))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.block.h3.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
bad-tags: 
  patterns: 
  - name: invalid.illegal.invalid_placement
    captures: 
      "1": 
        name: invalid.deprecated.invalid_placement
    begin: </?(a|abbr|acronym|address|area|b|base|bdo|big|blockquote|body|br|button|caption|cite|code|col|colgroup|dd|del|dfn|div|dl|dt|em|fieldset|form|h[1-6]|head|hr|html|i|img|input|ins|kbd|label|legend|li|link|map|meta|noscript|object|ol|optgroup|option|p|param|pre|q|samp|script|select|small|span|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|ul|var)\b
    end: ">"
  - name: invalid.illegal.unrecognized_tag
    captures: 
      "1": 
        name: invalid.deprecated.no_longer_valid
    begin: </?(basefont|center|dir|font|isindex|menu|s|strike|u)\b
    end: ">"
  - name: invalid.illegal.unrecognized_tag
    begin: <
    end: ">"
attribute-archive: 
  name: meta.attribute-with-value.html
  begin: (archive)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-cols: 
  name: meta.attribute-with-value.html
  begin: (cols)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
xml-preprocessor: 
  name: meta.tag.preprocessor.xml.html
  captures: 
    "1": 
      name: entity.name.tag.xml.html
  begin: <\?([\w-]*)
  end: \?>
  patterns: 
  - name: meta.attribute-with-value.html
    captures: 
      "1": 
        name: entity.other.attribute-name.html
      "3": 
        name: string.quoted.double.html
      "4": 
        name: string.quoted.single.html
      "5": 
        name: string.unquoted.html
    match: ([\w-]*)=((".*?")|('.*?')|((\?(?!>)|[^"'>\s\?])+))
  comment: "Bug: Too general, needs to highlight errors better."
tag-tt: 
  captures: 
    "1": 
      name: meta.tag.inline.tt.html
    "2": 
      name: entity.name.tag.inline.tt.html
  begin: (<(tt)\b)
  end: ((tt)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.tt.html
    begin: (?<=>)
    end: (</(?=tt))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.tt.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-style: 
  captures: 
    "1": 
      name: meta.tag.meta.style.html
    "2": 
      name: entity.name.tag.meta.style.html
  begin: (<(style)\b)
  end: ((style)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.meta.style.html
    begin: (?<=>)
    contentName: source.css.embedded.html
    end: (</(?=style))
    patterns: 
    - include: "#sgml-comment"
    - name: meta.scope.xml-cdata.html
      begin: <!\[CDATA\[
      end: "]]>"
      patterns: 
      - include: source.css
    - name: invalid.illegal.char_not_allowed
      match: <|>|]]>|--
    - include: "#entities"
    - include: source.css
  - name: meta.tag.meta.style.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-xml:space"
    - include: "#attribute-id"
    - include: "#attribute-title"
    - include: "#attribute-media"
    - include: "#attribute-type"
    - include: "#attributes-group-i18n"
    - include: "#attributes-illegal_char"
  comment: "Bug: Invalid chars are sometimes picked up by the js syntax first."
tag-h4: 
  captures: 
    "1": 
      name: meta.tag.block.h4.html
    "2": 
      name: entity.name.tag.block.h4.html
  begin: (<(h4)\b)
  end: ((h4)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.h4.html
    begin: (?<=>)
    end: (</(?=h4))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.block.h4.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-group-special.pre: 
  patterns: 
  - include: "#tag-br"
  - include: "#tag-span"
  - include: "#tag-bdo"
  - include: "#tag-map"
attribute-codebase: 
  name: meta.attribute-with-value.html
  begin: (codebase)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
tag-ol: 
  name: meta.section.html.ol.xhtml.1-strict
  captures: 
    "1": 
      name: meta.tag.block.ol.html
    "2": 
      name: entity.name.tag.block.ol.html
  begin: (<(ol)\b)
  end: ((ol)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.ol.html
    begin: (?<=>)
    end: (</(?=ol))
    patterns: 
    - include: "#tag-li"
    - include: "#no-pcdata"
  - name: meta.tag.block.ol.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-i: 
  captures: 
    "1": 
      name: meta.tag.inline.i.html
    "2": 
      name: entity.name.tag.inline.i.html
  begin: (<(i)\b)
  end: ((i)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.i.html
    begin: (?<=>)
    end: (</(?=i))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.i.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-html: 
  name: meta.section.html.html.xhtml.1-strict
  captures: 
    "1": 
      name: meta.tag.segment.html.html
    "2": 
      name: entity.name.tag.segment.html.html
  begin: (<(html)\b)
  end: ((html)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.segment.html.html
    begin: (?<=>)
    end: (</(?=html))
    patterns: 
    - include: "#tag-head"
    - include: "#tag-body"
    - include: "#no-pcdata"
  - name: meta.tag.segment.html.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-xmlns"
    - include: "#attributes-group-i18n"
    - include: "#attributes-illegal_char"
tag-area: 
  endCaptures: 
    "1": 
      name: meta.tag.meta.area.html
    "2": 
      name: invalid.illegal.terminator.html
  begin: (<(area)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.meta.area.html
    "2": 
      name: entity.name.tag.meta.area.html
  end: (/>|(>))
  patterns: 
  - name: meta.tag.meta.area.html
    begin: ""
    end: (?=/>|>)
    patterns: 
    - include: "#attribute-alt"
    - include: "#attribute-coords"
    - include: "#attribute-href"
    - include: "#attribute-nohref"
    - include: "#attribute-shape"
    - include: "#attributes-group-common"
    - include: "#attributes-group-focus"
    - include: "#attributes-illegal_char"
attribute-width: 
  name: meta.attribute-with-value.html
  begin: (width)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')([0-9]{0,5}|[0-9]{0,4}%)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')([0-9]{0,5}|[0-9]{0,4}%)(?="|')
    - include: "#values-generic-invalid"
attribute-size: 
  name: meta.attribute-with-value.html
  begin: (size)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
attribute-usemap: 
  name: meta.attribute-with-value.html
  begin: (usemap)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
tag-thead: 
  captures: 
    "1": 
      name: meta.tag.block.thead.html
    "2": 
      name: entity.name.tag.block.thead.html
  begin: (<(thead)\b)
  end: ((thead)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.thead.html
    begin: (?<=>)
    end: (</(?=thead))
    patterns: 
    - include: "#tag-tr"
    - include: "#no-pcdata"
  - name: meta.tag.block.thead.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-align"
    - include: "#attribute-char"
    - include: "#attribute-charoff"
    - include: "#attribute-valign"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-h5: 
  captures: 
    "1": 
      name: meta.tag.block.h5.html
    "2": 
      name: entity.name.tag.block.h5.html
  begin: (<(h5)\b)
  end: ((h5)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.h5.html
    begin: (?<=>)
    end: (</(?=h5))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.block.h5.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-group-inline-master: 
  patterns: 
  - include: "#tag-group-inline"
  - include: "#tag-group-misc.inline"
  - include: "#pcdata"
tag-col: 
  endCaptures: 
    "1": 
      name: meta.tag.block.col.html
    "2": 
      name: invalid.illegal.terminator.html
  begin: (<(col)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.block.col.html
    "2": 
      name: entity.name.tag.block.col.html
  end: (/>|(>))
  patterns: 
  - name: meta.tag.block.col.html
    begin: ""
    end: (?=/>|>)
    patterns: 
    - include: "#attribute-align"
    - include: "#attribute-char"
    - include: "#attribute-charoff"
    - include: "#attribute-span"
    - include: "#attribute-valign"
    - include: "#attribute-width-multi"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-style: 
  name: meta.attribute-with-value.html
  begin: (style)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    contentName: source.css.embedded.html
    end: "\""
    patterns: 
    - include: source.css
  - name: string.quoted.single.html
    begin: (?<!"|')'
    contentName: source.css.embedded.html
    end: "'"
    patterns: 
    - include: source.css
attribute-profile: 
  name: meta.attribute-with-value.html
  begin: (profile)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-disabled: 
  name: meta.attribute-with-value.html
  begin: (disabled)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')disabled(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')disabled(?="|')
    - include: "#values-generic-invalid"
tag-h6: 
  captures: 
    "1": 
      name: meta.tag.block.h6.html
    "2": 
      name: entity.name.tag.block.h6.html
  begin: (<(h6)\b)
  end: ((h6)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.h6.html
    begin: (?<=>)
    end: (</(?=h6))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.block.h6.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-del: 
  captures: 
    "1": 
      name: meta.tag.inline.del.html
    "2": 
      name: entity.name.tag.inline.del.html
  begin: (<(del)\b)
  end: ((del)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.del.html
    begin: (?<=>)
    end: (</(?=del))
    patterns: 
    - include: "#tag-group-flow"
  - name: meta.tag.inline.del.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-cite"
    - include: "#attribute-datetime"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-code: 
  captures: 
    "1": 
      name: meta.tag.inline.code.html
    "2": 
      name: entity.name.tag.inline.code.html
  begin: (<(code)\b)
  end: ((code)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.code.html
    begin: (?<=>)
    end: (</(?=code))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.code.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-marginheight: 
  name: meta.attribute-with-value.html
  begin: (marginheight)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
attribute-action: 
  name: meta.attribute-with-value.html
  begin: (action)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-xmlns: 
  name: meta.attribute-with-value.html
  begin: (xmlns)\s*=\s*(?=(["']).*?["'][^"'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')http://www.w3.org/1999/xhtml(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')http://www.w3.org/1999/xhtml(?="|')
    - include: "#values-generic-invalid"
attribute-valign: 
  name: meta.attribute-with-value.html
  begin: (valign)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')(top|middle|bottom|baseline)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')(top|middle|bottom|baseline)(?="|')
    - include: "#values-generic-invalid"
attribute-longdesc: 
  name: meta.attribute-with-value.html
  begin: (longdesc)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
tag-ul: 
  name: meta.section.html.ul.xhtml.1-strict
  captures: 
    "1": 
      name: meta.tag.block.ul.html
    "2": 
      name: entity.name.tag.block.ul.html
  begin: (<(ul)\b)
  end: ((ul)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.ul.html
    begin: (?<=>)
    end: (</(?=ul))
    patterns: 
    - include: "#tag-li"
    - include: "#no-pcdata"
  - name: meta.tag.block.ul.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-tbody: 
  captures: 
    "1": 
      name: meta.tag.block.tbody.html
    "2": 
      name: entity.name.tag.block.tbody.html
  begin: (<(tbody)\b)
  end: ((tbody)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.tbody.html
    begin: (?<=>)
    end: (</(?=tbody))
    patterns: 
    - include: "#tag-tr"
    - include: "#no-pcdata"
  - name: meta.tag.block.tbody.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-align"
    - include: "#attribute-char"
    - include: "#attribute-charoff"
    - include: "#attribute-valign"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-ins: 
  captures: 
    "1": 
      name: meta.tag.inline.ins.html
    "2": 
      name: entity.name.tag.inline.ins.html
  begin: (<(ins)\b)
  end: ((ins)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.ins.html
    begin: (?<=>)
    end: (</(?=ins))
    patterns: 
    - include: "#tag-group-flow"
  - name: meta.tag.inline.ins.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-cite"
    - include: "#attribute-datetime"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-title: 
  name: meta.attribute-with-value.html
  begin: (title)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-valuetype: 
  name: meta.attribute-with-value.html
  begin: (valuetype)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')(data|ref|object)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')(data|ref|object)(?="|')
    - include: "#values-generic-invalid"
attribute-http-equiv: 
  name: meta.attribute-with-value.html
  begin: (http-equiv)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: "[\\w\\-:]+"
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: "[\\w\\-:]+"
    - include: "#values-generic-invalid"
  comment: "Bug: This may not take into account all possible characters in NMTOKEN."
attribute-enctype: 
  name: meta.attribute-with-value.html
  begin: (enctype)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-cellpadding: 
  name: meta.attribute-with-value.html
  begin: (cellpadding)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')([0-9]{0,5}|[0-9]{0,4}%)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')([0-9]{0,5}|[0-9]{0,4}%)(?="|')
    - include: "#values-generic-invalid"
tag-acronym: 
  captures: 
    "1": 
      name: meta.tag.inline.acronym.html
    "2": 
      name: entity.name.tag.inline.acronym.html
  begin: (<(acronym)\b)
  end: ((acronym)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.acronym.html
    begin: (?<=>)
    end: (</(?=acronym))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.acronym.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-cite: 
  name: meta.attribute-with-value.html
  begin: (cite)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
tag-meta: 
  endCaptures: 
    "1": 
      name: meta.tag.meta.meta.html
    "2": 
      name: invalid.illegal.terminator.html
  begin: (<(meta)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.meta.meta.html
    "2": 
      name: entity.name.tag.meta.meta.html
  end: (/>|(>))
  patterns: 
  - name: meta.tag.meta.meta.html
    begin: ""
    end: (?=/>|>)
    patterns: 
    - include: "#attribute-id"
    - include: "#attribute-content"
    - include: "#attribute-http-equiv"
    - include: "#attribute-name"
    - include: "#attribute-scheme"
    - include: "#attributes-group-i18n"
    - include: "#attributes-illegal_char"
tag-dl: 
  name: meta.section.html.dl.xhtml.1-strict
  captures: 
    "1": 
      name: meta.tag.block.dl.html
    "2": 
      name: entity.name.tag.block.dl.html
  begin: (<(dl)\b)
  end: ((dl)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.dl.html
    begin: (?<=>)
    end: (</(?=dl))
    patterns: 
    - include: "#tag-dt"
    - include: "#tag-dd"
    - include: "#no-pcdata"
  - name: meta.tag.block.dl.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-width-multi: 
  name: meta.attribute-with-value.html
  begin: (width)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')([0-9]{0,5}\*?|[0-9]{0,4}%)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')([0-9]{0,5}\*?|[0-9]{0,4}%)(?="|')
    - include: "#values-generic-invalid"
attributes-group-focus: 
  patterns: 
  - include: "#attribute-accesskey"
  - include: "#attribute-tabindex"
  - include: "#attribute-onfocus"
  - include: "#attribute-onblur"
sgml-comment: 
  name: comment.block.html
  begin: <!--
  end: --\s*>
  patterns: 
  - name: invalid.deprecated.bad-comment-ending-token.html
    match: --(?!\s*>)
  comment: Does not allow the closing bracket to be on a diff line that the --, which as far as I can tell is legal.
attribute-nohref: 
  name: meta.attribute-with-value.html
  begin: (nohref)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')nohref(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')nohref(?="|')
    - include: "#values-generic-invalid"
attribute-onblur: 
  patterns: 
  - name: meta.attribute-with-value.html
    begin: (onblur)\s*=\s*(?=(["']).*?["'])
    applyEndPatternLast: "1"
    beginCaptures: 
      "1": 
        name: entity.other.attribute-name.html
    end: ""
    patterns: 
    - name: string.quoted.double.html
      begin: "\""
      contentName: source.js.embedded.html
      end: "\""
    - name: string.quoted.single.html
      begin: "'"
      contentName: source.js.embedded.html
      end: "'"
attribute-checked: 
  name: meta.attribute-with-value.html
  begin: (checked)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')checked(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')checked(?="|')
    - include: "#values-generic-invalid"
tag-small: 
  captures: 
    "1": 
      name: meta.tag.inline.small.html
    "2": 
      name: entity.name.tag.inline.small.html
  begin: (<(small)\b)
  end: ((small)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.small.html
    begin: (?<=>)
    end: (</(?=small))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.small.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-script: 
  endCaptures: 
    "1": 
      name: meta.tag.block.script.html
    "4": 
      name: entity.name.tag.block.script.html
  begin: (<(script)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.block.script.html
    "2": 
      name: entity.name.tag.block.script.html
  end: ((/>)|((script)>))
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.script.html
    begin: (?<=[^/]>)
    contentName: source.js.embedded.html
    end: (</(?=script))
    patterns: 
    - include: "#sgml-comment"
    - name: meta.scope.xml-cdata.html
      begin: <!\[CDATA\[
      end: "]]>"
      patterns: 
      - include: source.js
    - name: invalid.illegal.char_not_allowed
      match: <|>|]]>|--
    - include: "#entities"
    - include: source.js
  - name: meta.tag.block.script.html
    begin: ""
    end: ((?=/>)|>)
    patterns: 
    - include: "#attribute-xml:space"
    - include: "#attribute-id"
    - include: "#attribute-defer"
    - include: "#attribute-src"
    - include: "#attribute-type"
    - include: "#attribute-charset"
    - include: "#attributes-illegal_char"
  comment: "Bug: Invalid chars are sometimes picked up by the js syntax first."
tag-form: 
  name: meta.section.html.form.xhtml.1-strict
  captures: 
    "1": 
      name: meta.tag.block.form.html
    "2": 
      name: entity.name.tag.block.form.html
  begin: (<(form)\b)
  end: ((form)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.form.html
    begin: (?<=>)
    end: (</(?=form))
    patterns: 
    - include: "#tag-group-form.content"
    - include: "#no-pcdata"
  - name: meta.tag.block.form.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-accept"
    - include: "#attribute-accept-charset"
    - include: "#attribute-action"
    - include: "#attribute-method"
    - include: "#attribute-onreset"
    - include: "#attribute-onsubmit"
    - include: "#attribute-enctype"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-src: 
  name: meta.attribute-with-value.html
  begin: (src)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-defer: 
  name: meta.attribute-with-value.html
  begin: (defer)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')defer(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')defer(?="|')
    - include: "#values-generic-invalid"
tag-p: 
  captures: 
    "1": 
      name: meta.tag.block.p.html
    "2": 
      name: entity.name.tag.block.p.html
  begin: (<(p)\b)
  end: ((p)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.p.html
    begin: (?<=>)
    end: (</(?=p))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.block.p.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-option: 
  endCaptures: 
    "1": 
      name: meta.tag.block.option.html
    "4": 
      name: entity.name.tag.block.option.html
  begin: (<(option)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.block.option.html
    "2": 
      name: entity.name.tag.block.option.html
  end: ((/>)|((option)>))
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.option.html
    begin: (?<=[^/]>)
    end: (</(?=option))
    patterns: 
    - include: "#pcdata"
  - name: meta.tag.block.option.html
    begin: ""
    end: ((?=/>)|>)
    patterns: 
    - include: "#attribute-disabled"
    - include: "#attribute-label"
    - include: "#attribute-selected"
    - include: "#attribute-value"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-group-block: 
  patterns: 
  - include: "#tag-p"
  - include: "#tag-div"
  - include: "#tag-fieldset"
  - include: "#tag-table"
  - include: "#tag-group-heading"
  - include: "#tag-group-lists"
  - include: "#tag-group-blocktext"
attribute-onload: 
  patterns: 
  - name: meta.attribute-with-value.html
    begin: (onload)\s*=\s*(?=(["']).*?["'])
    applyEndPatternLast: "1"
    beginCaptures: 
      "1": 
        name: entity.other.attribute-name.html
    end: ""
    patterns: 
    - name: string.quoted.double.html
      begin: "\""
      contentName: source.js.embedded.html
      end: "\""
    - name: string.quoted.single.html
      begin: "'"
      contentName: source.js.embedded.html
      end: "'"
attribute-name: 
  name: meta.attribute-with-value.html
  begin: (name)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: "[\\w\\-:.]+"
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: "[\\w\\-:.]+"
    - include: "#values-generic-invalid"
  comment: "Bug: This may not take into account all possible characters in NMTOKEN."
sgml-declarations-preprocessor: 
  begin: (?=<!)
  applyEndPatternLast: "1"
  end: (?<=>)
  patterns: 
  - name: meta.tag.sgml.doctype.html
    captures: 
      "1": 
        name: entity.name.tag.doctype.html
    begin: <!(DOCTYPE\b)
    end: ">"
    patterns: 
    - name: string.quoted.double.doctype.identifiers-and-DTDs.html
      match: "\"[^\">]*\""
  - include: "#sgml-declarations"
attribute-media: 
  name: meta.attribute-with-value.html
  begin: (media)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')(screen|tty|tv|projection|handheld|print|braille|aural|all)(,\s*(screen|tty|tv|projection|handheld|print|braille|aural|all))*(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')(screen|tty|tv|projection|handheld|print|braille|aural|all)(,\s*(screen|tty|tv|projection|handheld|print|braille|aural|all))*(?="|')
    - include: "#values-generic-invalid"
tag-q: 
  captures: 
    "1": 
      name: meta.tag.inline.q.html
    "2": 
      name: entity.name.tag.inline.q.html
  begin: (<(q)\b)
  end: ((q)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.q.html
    begin: (?<=>)
    end: (</(?=q))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.q.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-cite"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-ismap: 
  name: meta.attribute-with-value.html
  begin: (ismap)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')ismap(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')ismap(?="|')
    - include: "#values-generic-invalid"
attribute-value: 
  name: meta.attribute-with-value.html
  begin: (value)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-type: 
  name: meta.attribute-with-value.html
  begin: (type)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-marginwidth: 
  name: meta.attribute-with-value.html
  begin: (marginwidth)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
tag-table: 
  name: meta.section.html.table.xhtml.1-strict
  captures: 
    "1": 
      name: meta.tag.block.table.html
    "2": 
      name: entity.name.tag.block.table.html
  begin: (<(table)\b)
  end: ((table)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.table.html
    begin: (?<=>)
    end: (</(?=table))
    patterns: 
    - include: "#tag-caption"
    - begin: (?<=</caption>)
      end: (?=<(?!/?caption))
      patterns: 
      - include: "#stray-char"
      - include: "#sgml-declarations"
    - begin: (?=<(?!/?table))
      end: (?=</table)
      patterns: 
      - begin: (?=<(colgroup|col))
        applyEndPatternLast: "1"
        end: (?=<)
        patterns: 
        - begin: (?=<colgroup)
          end: (?=<(?!colgroup|col))
          patterns: 
          - include: "#tag-colgroup"
          - include: "#stray-char"
          - include: "#sgml-declarations"
        - begin: (?=<col)
          end: (?=<(?!colgroup|col))
          patterns: 
          - include: "#tag-col"
          - include: "#stray-char"
          - include: "#sgml-declarations"
        comment: "Bug: This should use the generic invalid tag."
      - begin: (?=<(?!/?table))
        end: (?=</table)
        patterns: 
        - include: "#tag-thead"
        - begin: (?<=</thead>)
          end: (?=</table)
          patterns: 
          - include: "#tag-tfoot"
          - begin: (?<=</tfoot>)
            end: (?=</table)
            patterns: 
            - include: "#tag-tbody"
            - include: "#stray-char"
            - include: "#sgml-declarations"
          - begin: (?=<(?!/?table))
            end: (?=</table)
            patterns: 
            - include: "#tag-tbody"
            - include: "#stray-char"
            - include: "#sgml-declarations"
          - include: "#stray-char"
          - include: "#sgml-declarations"
        - begin: (?=<(?!/?table))
          end: (?=</table)
          patterns: 
          - include: "#tag-tfoot"
          - begin: (?<=</tfoot>)
            end: (?=</table)
            patterns: 
            - include: "#tag-tbody"
            - include: "#stray-char"
            - include: "#sgml-declarations"
          - begin: (?=<(?!/?table))
            end: (?=</table)
            patterns: 
            - begin: (?=<tbody)
              end: (?=</table)
              patterns: 
              - include: "#tag-tbody"
              - include: "#stray-char"
              - include: "#sgml-declarations"
            - begin: (?=<tr)
              end: (?=</table)
              patterns: 
              - include: "#tag-tr"
              - include: "#stray-char"
              - include: "#sgml-declarations"
            - include: "#stray-char"
            - include: "#sgml-declarations"
          - include: "#stray-char"
          - include: "#sgml-declarations"
        - include: "#stray-char"
        - include: "#sgml-declarations"
      - include: "#stray-char"
      - include: "#sgml-declarations"
    - include: "#no-pcdata"
  - name: meta.tag.block.table.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-border"
    - include: "#attribute-cellpadding"
    - include: "#attribute-cellspacing"
    - include: "#attribute-frame"
    - include: "#attribute-rules"
    - include: "#attribute-summary"
    - include: "#attribute-width"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-group-button.content: 
  patterns: 
  - include: "#tag-p"
  - include: "#tag-group-heading"
  - include: "#tag-div"
  - include: "#tag-group-lists"
  - include: "#tag-group-blocktext"
  - include: "#tag-table"
  - include: "#tag-group-special"
  - include: "#tag-group-fontstyle"
  - include: "#tag-group-phrase"
  - include: "#tag-group-misc"
  - include: "#pcdata"
tag-big: 
  captures: 
    "1": 
      name: meta.tag.inline.big.html
    "2": 
      name: entity.name.tag.inline.big.html
  begin: (<(big)\b)
  end: ((big)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.big.html
    begin: (?<=>)
    end: (</(?=big))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.big.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-multiple: 
  name: meta.attribute-with-value.html
  begin: (multiple)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')multiple(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')multiple(?="|')
    - include: "#values-generic-invalid"
attribute-datapagesize: 
  name: meta.attribute-with-value.html
  begin: (datapagesize)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
tag-strong: 
  captures: 
    "1": 
      name: meta.tag.inline.strong.html
    "2": 
      name: entity.name.tag.inline.strong.html
  begin: (<(strong)\b)
  end: ((strong)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.strong.html
    begin: (?<=>)
    end: (</(?=strong))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.strong.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-char: 
  name: meta.attribute-with-value.html
  begin: (char)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[[:alnum:]](?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[[:alnum:]](?="|')
    - include: "#values-generic-invalid"
  comment: "Bug: Does not correctly represent the single Character attribute."
stray-char: 
  name: invalid.illegal.character_data_not_allowed_here
  tooltip: Characters not allowed here, try adding a block level tag first.
  match: "[^<>\\s][^<>]*"
attribute-height: 
  name: meta.attribute-with-value.html
  begin: (height)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')([0-9]{0,5}|[0-9]{0,4}%)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')([0-9]{0,5}|[0-9]{0,4}%)(?="|')
    - include: "#values-generic-invalid"
attribute-charoff: 
  name: meta.attribute-with-value.html
  begin: (charoff)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')([0-9]{0,5}|[0-9]{0,4}%)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')([0-9]{0,5}|[0-9]{0,4}%)(?="|')
    - include: "#values-generic-invalid"
attribute-span: 
  name: meta.attribute-with-value.html
  begin: (span)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
attribute-selected: 
  name: meta.attribute-with-value.html
  begin: (selected)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')selected(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')selected(?="|')
    - include: "#values-generic-invalid"
values-generic-invalid: 
  patterns: 
  - name: invalid.illegal.incorrect-value.html
    match: (?<="|').*?(?="|')
attribute-onfocus: 
  patterns: 
  - name: meta.attribute-with-value.html
    begin: (onfocus)\s*=\s*(?=(["']).*?["'])
    applyEndPatternLast: "1"
    beginCaptures: 
      "1": 
        name: entity.other.attribute-name.html
    end: ""
    patterns: 
    - name: string.quoted.double.html
      begin: "\""
      contentName: source.js.embedded.html
      end: "\""
    - name: string.quoted.single.html
      begin: "'"
      contentName: source.js.embedded.html
      end: "'"
tag-group-fontstyle: 
  patterns: 
  - include: "#tag-tt"
  - include: "#tag-i"
  - include: "#tag-b"
  - include: "#tag-big"
  - include: "#tag-small"
tag-blockquote: 
  captures: 
    "1": 
      name: meta.tag.block.blockquote.html
    "2": 
      name: entity.name.tag.block.blockquote.html
  begin: (<(blockquote)\b)
  end: ((blockquote)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.blockquote.html
    begin: (?<=>)
    end: (</(?=blockquote))
    patterns: 
    - include: "#tag-group-block-master"
    - include: "#no-pcdata"
  - name: meta.tag.block.blockquote.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-cite"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-rel: 
  name: meta.attribute-with-value.html
  begin: (rel)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-accept-charset: 
  name: meta.attribute-with-value.html
  begin: (accept-charset)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-scope: 
  name: meta.attribute-with-value.html
  begin: (scope)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')(row|col|rowgroup|colgroup)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')(row|col|rowgroup|colgroup)(?="|')
    - include: "#values-generic-invalid"
tag-group-flow: 
  patterns: 
  - include: "#tag-group-block"
  - include: "#tag-group-inline"
  - include: "#tag-group-misc"
  - include: "#tag-form"
  - include: "#pcdata"
tag-button: 
  endCaptures: 
    "1": 
      name: meta.tag.form.button.html
    "4": 
      name: entity.name.tag.form.button.html
  begin: (<(button)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.form.button.html
    "2": 
      name: entity.name.tag.form.button.html
  end: ((/>)|((button)>))
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.form.button.html
    begin: (?<=[^/]>)
    end: (</(?=button))
    patterns: 
    - include: "#tag-group-button.content"
  - name: meta.tag.form.button.html
    begin: ""
    end: ((?=/>)|>)
    patterns: 
    - include: "#attribute-disabled"
    - include: "#attribute-name"
    - include: "#attribute-type-button"
    - include: "#attribute-value"
    - include: "#attributes-group-common"
    - include: "#attributes-group-focus"
    - include: "#attributes-illegal_char"
attributes-group-common: 
  patterns: 
  - include: "#attributes-group-core"
  - include: "#attributes-group-events"
  - include: "#attributes-group-i18n"
tag-dt: 
  captures: 
    "1": 
      name: meta.tag.block.dt.html
    "2": 
      name: entity.name.tag.block.dt.html
  begin: (<(dt)\b)
  end: ((dt)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.dt.html
    begin: (?<=>)
    end: (</(?=dt))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.block.dt.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-colgroup: 
  endCaptures: 
    "1": 
      name: meta.tag.block.colgroup.html
    "4": 
      name: entity.name.tag.block.colgroup.html
  begin: (<(colgroup)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.block.colgroup.html
    "2": 
      name: entity.name.tag.block.colgroup.html
  end: ((/>)|((colgroup)>))
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.colgroup.html
    begin: (?<=[^/]>)
    end: (</(?=colgroup))
    patterns: 
    - include: "#tag-col"
    - include: "#no-pcdata"
  - name: meta.tag.block.colgroup.html
    begin: ""
    end: ((?=/>)|>)
    patterns: 
    - include: "#attribute-align"
    - include: "#attribute-char"
    - include: "#attribute-charoff"
    - include: "#attribute-span"
    - include: "#attribute-valign"
    - include: "#attribute-width-multi"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-tabindex: 
  name: meta.attribute-with-value.html
  begin: (tabindex)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
attributes-group-core: 
  patterns: 
  - include: "#attribute-class"
  - include: "#attribute-id"
  - include: "#attribute-title"
  - include: "#attribute-style"
tag-group-block-master: 
  patterns: 
  - include: "#tag-group-block"
  - include: "#tag-group-misc"
  - include: "#tag-form"
tag-cite: 
  captures: 
    "1": 
      name: meta.tag.inline.cite.html
    "2": 
      name: entity.name.tag.inline.cite.html
  begin: (<(cite)\b)
  end: ((cite)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.cite.html
    begin: (?<=>)
    end: (</(?=cite))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.cite.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-onreset: 
  patterns: 
  - name: meta.attribute-with-value.html
    begin: (onreset)\s*=\s*(?=(["']).*?["'])
    applyEndPatternLast: "1"
    beginCaptures: 
      "1": 
        name: entity.other.attribute-name.html
    end: ""
    patterns: 
    - name: string.quoted.double.html
      begin: "\""
      contentName: source.js.embedded.html
      end: "\""
    - name: string.quoted.single.html
      begin: "'"
      contentName: source.js.embedded.html
      end: "'"
attribute-xml:lang: 
  name: meta.attribute-with-value.html
  begin: (xml:lang)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: "[\\w\\-:]+"
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: "[\\w\\-:]+"
    - include: "#values-generic-invalid"
  comment: "Bug: This may not take into account all possible characters in NMTOKEN."
tag-link: 
  endCaptures: 
    "1": 
      name: meta.tag.meta.link.html
    "2": 
      name: invalid.illegal.terminator.html
  begin: (<(link)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.meta.link.html
    "2": 
      name: entity.name.tag.meta.link.html
  end: (/>|(>))
  patterns: 
  - name: meta.tag.meta.link.html
    begin: ""
    end: (?=/>|>)
    patterns: 
    - include: "#attribute-charset"
    - include: "#attribute-href"
    - include: "#attribute-hreflang"
    - include: "#attribute-media"
    - include: "#attribute-rel"
    - include: "#attribute-rev"
    - include: "#attribute-type"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-img: 
  endCaptures: 
    "1": 
      name: meta.tag.object.img.html
    "2": 
      name: invalid.illegal.terminator.html
  begin: (<(img)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.object.img.html
    "2": 
      name: entity.name.tag.object.img.html
  end: (/>|(>))
  patterns: 
  - name: meta.tag.object.img.html
    begin: ""
    end: (?=/>|>)
    patterns: 
    - include: "#attribute-alt"
    - include: "#attribute-height"
    - include: "#attribute-usemap"
    - include: "#attribute-ismap"
    - include: "#attribute-longdesc"
    - include: "#attribute-src"
    - include: "#attribute-width"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-group-special: 
  patterns: 
  - include: "#tag-group-special.pre"
  - include: "#tag-object"
  - include: "#tag-img"
  - include: "#tag-h4"
  - include: "#tag-h5"
  - include: "#tag-h6"
tag-group-lists: 
  patterns: 
  - include: "#tag-ul"
  - include: "#tag-ol"
  - include: "#tag-dl"
attribute-hreflang: 
  name: meta.attribute-with-value.html
  begin: (hreflang)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: "[\\w\\-:]+"
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: "[\\w\\-:]+"
    - include: "#values-generic-invalid"
  comment: "Bug: This may not take into account all possible characters in NMTOKEN."
attributes-illegal_char: 
  name: invalid.illegal.unrecognized-character.html
  match: /(?!>)|[^\s/>]
attribute-maxlength: 
  name: meta.attribute-with-value.html
  begin: (maxlength)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
attribute-abbr: 
  name: meta.attribute-with-value.html
  begin: (abbr)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-method: 
  name: meta.attribute-with-value.html
  begin: (method)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')(get|post)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')(get|post)(?="|')
    - include: "#values-generic-invalid"
tag-group-heading: 
  patterns: 
  - include: "#tag-h1"
  - include: "#tag-h2"
  - include: "#tag-h3"
  - include: "#tag-h4"
  - include: "#tag-h5"
  - include: "#tag-h6"
tag-dfn: 
  captures: 
    "1": 
      name: meta.tag.inline.dfn.html
    "2": 
      name: entity.name.tag.inline.dfn.html
  begin: (<(dfn)\b)
  end: ((dfn)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.dfn.html
    begin: (?<=>)
    end: (</(?=dfn))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.dfn.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-type-button: 
  name: meta.attribute-with-value.html
  begin: (type)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')(button|submit|reset)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')(button|submit|reset)(?="|')
    - include: "#values-generic-invalid"
attribute-classid: 
  name: meta.attribute-with-value.html
  begin: (classid)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-charset: 
  name: meta.attribute-with-value.html
  begin: (charset)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-rules: 
  name: meta.attribute-with-value.html
  begin: (rules)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')(none|groups|rows|cols|all)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')(none|groups|rows|cols|all)(?="|')
    - include: "#values-generic-invalid"
tag-noscript: 
  captures: 
    "1": 
      name: meta.tag.block.noscript.html
    "2": 
      name: entity.name.tag.block.noscript.html
  begin: (<(noscript)\b)
  end: ((noscript)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.noscript.html
    begin: (?<=>)
    end: (</(?=noscript))
    patterns: 
    - include: "#tag-group-block-master"
    - include: "#no-pcdata"
  - name: meta.tag.block.noscript.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-label: 
  captures: 
    "1": 
      name: meta.tag.inline.label.html
    "2": 
      name: entity.name.tag.inline.label.html
  begin: (<(label)\b)
  end: ((label)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.label.html
    begin: (?<=>)
    end: (</(?=label))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.label.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-accesskey"
    - include: "#attribute-for"
    - include: "#attribute-onblur"
    - include: "#attribute-onfocus"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-label: 
  name: meta.attribute-with-value.html
  begin: (label)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-summary: 
  name: meta.attribute-with-value.html
  begin: (summary)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-for: 
  name: meta.attribute-with-value.html
  begin: (for)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attributes-group-events: 
  patterns: 
  - name: meta.attribute-with-value.html
    begin: (onclick|ondblclick|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup)\s*=\s*(?=(["']).*?["'])
    applyEndPatternLast: "1"
    beginCaptures: 
      "1": 
        name: entity.other.attribute-name.html
    end: ""
    patterns: 
    - name: string.quoted.double.html
      begin: (?<!"|')"
      contentName: source.js.embedded.html
      end: "\""
    - name: string.quoted.single.html
      begin: (?<!"|')'
      contentName: source.js.embedded.html
      end: "'"
tag-sub: 
  captures: 
    "1": 
      name: meta.tag.inline.sub.html
    "2": 
      name: entity.name.tag.inline.sub.html
  begin: (<(sub)\b)
  end: ((sub)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.sub.html
    begin: (?<=>)
    end: (</(?=sub))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.sub.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-em: 
  captures: 
    "1": 
      name: meta.tag.inline.em.html
    "2": 
      name: entity.name.tag.inline.em.html
  begin: (<(em)\b)
  end: ((em)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.em.html
    begin: (?<=>)
    end: (</(?=em))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.em.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-onchange: 
  patterns: 
  - name: meta.attribute-with-value.html
    begin: (onchange)\s*=\s*(?=(["']).*?["'])
    applyEndPatternLast: "1"
    beginCaptures: 
      "1": 
        name: entity.other.attribute-name.html
    end: ""
    patterns: 
    - name: string.quoted.double.html
      begin: "\""
      contentName: source.js.embedded.html
      end: "\""
    - name: string.quoted.single.html
      begin: "'"
      contentName: source.js.embedded.html
      end: "'"
attribute-align: 
  name: meta.attribute-with-value.html
  begin: (align)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')(left|center|right|justify|char)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')(left|center|right|justify|char)(?="|')
    - include: "#values-generic-invalid"
tag-td: 
  endCaptures: 
    "1": 
      name: meta.tag.block.td.html
    "4": 
      name: entity.name.tag.block.td.html
  begin: (<(td)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.block.td.html
    "2": 
      name: entity.name.tag.block.td.html
  end: ((/>)|((td)>))
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.td.html
    begin: (?<=[^/]>)
    end: (</(?=td))
    patterns: 
    - include: "#tag-group-flow"
  - name: meta.tag.block.td.html
    begin: ""
    end: ((?=/>)|>)
    patterns: 
    - include: "#attribute-abbr"
    - include: "#attribute-align"
    - include: "#attribute-axis"
    - include: "#attribute-char"
    - include: "#attribute-charoff"
    - include: "#attribute-colspan"
    - include: "#attribute-headers"
    - include: "#attribute-rowspan"
    - include: "#attribute-scope"
    - include: "#attribute-valign"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-id: 
  name: meta.attribute-with-value.html
  begin: (id)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[a-zA-Z][a-zA-Z0-9\-_:.]*(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[a-zA-Z][a-zA-Z0-9\-_:.]*(?="|')
    - include: "#values-generic-invalid"
attribute-declare: 
  name: meta.attribute-with-value.html
  begin: (declare)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')declare(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')declare(?="|')
    - include: "#values-generic-invalid"
tag-var: 
  captures: 
    "1": 
      name: meta.tag.inline.var.html
    "2": 
      name: entity.name.tag.inline.var.html
  begin: (<(var)\b)
  end: ((var)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.var.html
    begin: (?<=>)
    end: (</(?=var))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.var.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-span: 
  captures: 
    "1": 
      name: meta.tag.inline.span.html
    "2": 
      name: entity.name.tag.inline.span.html
  begin: (<(span)\b)
  end: ((span)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.span.html
    begin: (?<=>)
    end: (</(?=span))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.span.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-kbd: 
  captures: 
    "1": 
      name: meta.tag.inline.kbd.html
    "2": 
      name: entity.name.tag.inline.kbd.html
  begin: (<(kbd)\b)
  end: ((kbd)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.kbd.html
    begin: (?<=>)
    end: (</(?=kbd))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.kbd.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-iframe: 
  captures: 
    "1": 
      name: meta.tag.block.iframe.html
    "2": 
      name: entity.name.tag.block.iframe.html
  begin: (<(iframe)\b)
  end: ((iframe)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.iframe.html
    begin: (?<=>)
    end: (</(?=iframe))
    patterns: 
    - include: "#tag-group-flow"
    - include: "#sgml-declarations"
    - include: "#entities"
  - name: meta.tag.block.iframe.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-frameborder"
    - include: "#attribute-height"
    - include: "#attribute-longdesc"
    - include: "#attribute-marginheight"
    - include: "#attribute-marginwidth"
    - include: "#attribute-scrolling"
    - include: "#attribute-src"
    - include: "#attribute-width"
    - include: "#attributes-group-core"
    - include: "#attributes-illegal_char"
tag-caption: 
  captures: 
    "1": 
      name: meta.tag.block.caption.html
    "2": 
      name: entity.name.tag.block.caption.html
  begin: (<(caption)\b)
  end: ((caption)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.caption.html
      "2": 
        name: entity.name.tag.block.caption.html
    begin: (?<=>)
    end: (</(?=caption))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.block.caption.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-datetime: 
  name: meta.attribute-with-value.html
  begin: (datetime)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')([0-9]{4}-(0[1-9]|1[012])-((?!00|3[2-9])[0-3][0-9])T((?!2[4-9])[0-2][0-9]):[0-5][0-9]:[0-5][0-9](Z|[-+]((?!2[4-9])[0-2][0-9]):[0-5][0-9]))(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')([0-9]{4}-(0[1-9]|1[012])-((?!00|3[2-9])[0-3][0-9])T((?!2[4-9])[0-2][0-9]):[0-5][0-9]:[0-5][0-9](Z|[-+]((?!2[4-9])[0-2][0-9]):[0-5][0-9]))(?="|')
    - include: "#values-generic-invalid"
tag-optgroup: 
  captures: 
    "1": 
      name: meta.tag.block.optgroup.html
    "2": 
      name: entity.name.tag.block.optgroup.html
  begin: (<(optgroup)\b)
  end: ((optgroup)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.optgroup.html
    begin: (?<=>)
    end: (</(?=optgroup))
    patterns: 
    - include: "#tag-option"
    - include: "#no-pcdata"
  - name: meta.tag.block.optgroup.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-disabled"
    - include: "#attribute-label"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-group-pre.content: 
  patterns: 
  - include: "#tag-a"
  - include: "#tag-group-fontstyle"
  - include: "#tag-group-phrase"
  - include: "#tag-group-special.pre"
  - include: "#tag-group-misc.inline"
  - include: "#tag-group-inline.forms"
  - include: "#pcdata"
tag-group-misc: 
  patterns: 
  - include: "#tag-group-misc.inline"
  - include: "#tag-noscript"
attribute-rev: 
  name: meta.attribute-with-value.html
  begin: (rev)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
tag-group-a.content: 
  patterns: 
  - include: "#tag-group-special"
  - include: "#tag-group-fontstyle"
  - include: "#tag-group-phrase"
  - include: "#tag-group-inline.forms"
  - include: "#tag-group-misc.inline"
  - include: "#pcdata"
tag-br: 
  endCaptures: 
    "1": 
      name: meta.tag.block.br.html
    "2": 
      name: invalid.illegal.terminator.html
  begin: (<(br)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.block.br.html
    "2": 
      name: entity.name.tag.block.br.html
  end: (/>|(>))
  patterns: 
  - name: meta.tag.block.br.html
    begin: ""
    end: (?=/>|>)
    patterns: 
    - include: "#attributes-group-core"
    - include: "#attributes-illegal_char"
attribute-readonly: 
  name: meta.attribute-with-value.html
  begin: (readonly)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')readonly(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')readonly(?="|')
    - include: "#values-generic-invalid"
tag-th: 
  endCaptures: 
    "1": 
      name: meta.tag.block.th.html
    "4": 
      name: entity.name.tag.block.th.html
  begin: (<(th)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.block.th.html
    "2": 
      name: entity.name.tag.block.th.html
  end: ((/>)|((th)>))
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.th.html
    begin: (?<=[^/]>)
    end: (</(?=th))
    patterns: 
    - include: "#tag-group-flow"
  - name: meta.tag.block.th.html
    begin: ""
    end: ((?=/>)|>)
    patterns: 
    - include: "#attribute-abbr"
    - include: "#attribute-align"
    - include: "#attribute-axis"
    - include: "#attribute-char"
    - include: "#attribute-charoff"
    - include: "#attribute-colspan"
    - include: "#attribute-headers"
    - include: "#attribute-rowspan"
    - include: "#attribute-scope"
    - include: "#attribute-valign"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-select: 
  captures: 
    "1": 
      name: meta.tag.form.select.html
    "2": 
      name: entity.name.tag.form.select.html
  begin: (<(select)\b)
  end: ((select)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.form.select.html
    begin: (?<=>)
    end: (</(?=select))
    patterns: 
    - include: "#tag-optgroup"
    - include: "#tag-option"
    - include: "#no-pcdata"
  - name: meta.tag.form.select.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-disabled"
    - include: "#attribute-multiple"
    - include: "#attribute-name"
    - include: "#attribute-onblur"
    - include: "#attribute-onfocus"
    - include: "#attribute-onchange"
    - include: "#attribute-size"
    - include: "#attribute-tabindex"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-map: 
  captures: 
    "1": 
      name: meta.tag.block.map.html
    "2": 
      name: entity.name.tag.block.map.html
  begin: (<(map)\b)
  end: ((map)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.map.html
    begin: (?<=>)
    end: (</(?=map))
    patterns: 
    - include: "#stray-char"
    - include: "#sgml-declarations"
    - begin: (?=<area)
      end: (?=</map)
      patterns: 
      - include: "#tag-area"
      - include: "#no-pcdata"
    - begin: (?=<(?!/?(map|area)))
      end: (?=</map)
      patterns: 
      - include: "#tag-group-misc"
      - include: "#tag-group-block"
      - include: "#tag-form"
      - include: "#no-pcdata"
  - name: meta.tag.block.map.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-class"
    - include: "#attribute-id"
    - include: "#attribute-style"
    - include: "#attribute-name"
    - include: "#attribute-title"
    - include: "#attributes-group-events"
    - include: "#attributes-group-i18n"
    - include: "#attributes-illegal_char"
tag-head: 
  name: meta.section.html.head.xhtml.1-strict
  captures: 
    "1": 
      name: meta.tag.segment.head.html
    "2": 
      name: entity.name.tag.segment.head.html
  begin: (<(head)\b)
  end: ((head)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.segment.head.html
    begin: (?<=>)
    end: (</(?=head))
    patterns: 
    - include: "#tag-title"
    - include: "#tag-base"
    - include: "#tag-meta"
    - include: "#tag-link"
    - include: "#tag-object"
    - include: "#tag-script"
    - include: "#tag-style"
    - include: "#no-pcdata"
  - name: meta.tag.segment.head.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-id"
    - include: "#attribute-profile"
    - include: "#attributes-group-i18n"
    - include: "#attributes-illegal_char"
tag-group-blocktext: 
  patterns: 
  - include: "#tag-pre"
  - include: "#tag-hr"
  - include: "#tag-blockquote"
  - include: "#tag-address"
attribute-frameborder: 
  name: meta.attribute-with-value.html
  begin: (frameborder)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[01](?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[01](?="|')
    - include: "#values-generic-invalid"
attribute-codetype: 
  name: meta.attribute-with-value.html
  begin: (codetype)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-href: 
  name: meta.attribute-with-value.html
  begin: (href)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-lang: 
  name: meta.attribute-with-value.html
  begin: (lang)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: "[\\w\\-:]+"
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: "[\\w\\-:]+"
    - include: "#values-generic-invalid"
  comment: "Bug: This may not take into account all possible characters in NMTOKEN."
attribute-shape: 
  name: meta.attribute-with-value.html
  begin: (shape)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')(rect|circle|poly|default)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')(rect|circle|poly|default)(?="|')
    - include: "#values-generic-invalid"
attribute-scrolling: 
  name: meta.attribute-with-value.html
  begin: (scrolling)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')(yes|no|auto)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')(yes|no|auto)(?="|')
    - include: "#values-generic-invalid"
values-generic-valid: 
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - include: "#entities"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - include: "#entities"
tag-tfoot: 
  captures: 
    "1": 
      name: meta.tag.block.tfoot.html
    "2": 
      name: entity.name.tag.block.tfoot.html
  begin: (<(tfoot)\b)
  end: ((tfoot)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.tfoot.html
    begin: (?<=>)
    end: (</(?=tfoot))
    patterns: 
    - include: "#tag-tr"
    - include: "#no-pcdata"
  - name: meta.tag.block.tfoot.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-align"
    - include: "#attribute-char"
    - include: "#attribute-charoff"
    - include: "#attribute-valign"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-xml:space: 
  name: meta.attribute-with-value.html
  begin: (xml:space)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')preserve(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')preserve(?="|')
    - include: "#values-generic-invalid"
tag-hr: 
  endCaptures: 
    "1": 
      name: meta.tag.block.hr.html
    "2": 
      name: invalid.illegal.terminator.html
  begin: (<(hr)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.block.hr.html
    "2": 
      name: entity.name.tag.block.hr.html
  end: (/>|(>))
  patterns: 
  - name: meta.tag.block.hr.html
    begin: ""
    end: (?=/>|>)
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-group-misc.inline: 
  patterns: 
  - include: "#tag-ins"
  - include: "#tag-del"
  - include: "#tag-script"
tag-group-inline: 
  patterns: 
  - include: "#tag-a"
  - include: "#tag-group-special"
  - include: "#tag-group-fontstyle"
  - include: "#tag-group-phrase"
  - include: "#tag-group-inline.forms"
tag-bdo: 
  captures: 
    "1": 
      name: meta.tag.block.bdo.html
    "2": 
      name: entity.name.tag.block.bdo.html
  begin: (<(bdo)\b)
  end: ((bdo)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.bdo.html
    begin: (?<=>)
    end: (</(?=bdo))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.block.bdo.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-dir"
    - include: "#attributes-group-core"
    - include: "#attributes-group-events"
    - include: "#attributes-group-i18n"
    - include: "#attributes-illegal_char"
attribute-onsubmit: 
  patterns: 
  - name: meta.attribute-with-value.html
    begin: (onsubmit)\s*=\s*(?=(["']).*?["'])
    applyEndPatternLast: "1"
    beginCaptures: 
      "1": 
        name: entity.other.attribute-name.html
    end: ""
    patterns: 
    - name: string.quoted.double.html
      begin: "\""
      contentName: source.js.embedded.html
      end: "\""
    - name: string.quoted.single.html
      begin: "'"
      contentName: source.js.embedded.html
      end: "'"
attribute-data: 
  name: meta.attribute-with-value.html
  begin: (data)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-standby: 
  name: meta.attribute-with-value.html
  begin: (standby)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-accept: 
  name: meta.attribute-with-value.html
  begin: (accept)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-rows: 
  name: meta.attribute-with-value.html
  begin: (rows)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
attributes-group-i18n: 
  patterns: 
  - name: meta.attribute-with-value.html
    begin: (dir)\s*=\s*(?=(["']).*?["'])
    applyEndPatternLast: "1"
    beginCaptures: 
      "1": 
        name: entity.other.attribute-name.html
    end: ""
    patterns: 
    - name: string.quoted.double.html
      begin: (?<!"|')"
      end: "\""
      patterns: 
      - match: (?<="|')(ltr|rtl)(?="|')
      - include: "#values-generic-invalid"
    - name: string.quoted.single.html
      begin: (?<!"|')'
      end: "'"
      patterns: 
      - match: (?<="|')(ltr|rtl)(?="|')
      - include: "#values-generic-invalid"
  - include: "#attribute-xml:lang"
  - include: "#attribute-lang"
tag-fieldset: 
  captures: 
    "1": 
      name: meta.tag.block.fieldset.html
    "2": 
      name: entity.name.tag.block.fieldset.html
  begin: (<(fieldset)\b)
  end: ((fieldset)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.fieldset.html
    begin: (?<=>)
    end: (</(?=fieldset))
    patterns: 
    - include: "#tag-legend"
    - include: "#tag-form"
    - include: "#tag-group-block"
    - include: "#tag-group-inline"
    - include: "#tag-group-misc"
    - include: "#pcdata"
  - name: meta.tag.block.fieldset.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-div: 
  captures: 
    "1": 
      name: meta.tag.block.div.html
    "2": 
      name: entity.name.tag.block.div.html
  begin: (<(div)\b)
  end: ((div)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.div.html
    begin: (?<=>)
    end: (</(?=div))
    patterns: 
    - include: "#tag-group-flow"
  - name: meta.tag.block.div.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-body: 
  name: meta.section.html.body.xhtml.1-strict
  captures: 
    "1": 
      name: meta.tag.segment.body.html
    "2": 
      name: entity.name.tag.segment.body.html
  begin: (<(body)\b)
  end: ((body)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.segment.body.html
    begin: (?<=>)
    end: (</(?=body))
    patterns: 
    - include: "#tag-group-block-master"
    - include: "#no-pcdata"
  - name: meta.tag.segment.body.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-onload"
    - include: "#attribute-onunload"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
sgml-declarations: 
  begin: (?=<!)
  applyEndPatternLast: "1"
  end: (?<=>)
  patterns: 
  - name: meta.tag.sgml.empty.html
    match: <!\s*>
  - name: invalid.illegal.bad-comments-or-CDATA.html
    begin: <!(?!DOCTYPE|--|\[CDATA\[)
    end: ">"
  - name: meta.tag.preprocessor.server-side-includes.html
    captures: 
      "1": 
        name: support.function.server-side-include.html
    begin: <!--(#\s*(include|config|echo|exec|fsize|flastmod|printenv|set))
    end: -->
    patterns: 
    - name: meta.preprocessor.server-side-includes.html
      captures: 
        "1": 
          name: entity.other.attribute-name.html
        "3": 
          name: string.quoted.double.html
        "4": 
          name: string.quoted.single.html
        "5": 
          name: string.unquoted.html
      match: (errmsg|sizefmt|timefmt|var|encoding|cgi|cmd|file|virtual|value)=((".*?")|('.*?')|([^"'>\s]+))
  - include: "#sgml-comment"
  - name: meta.scope.xml-cdata.html
    begin: <!\[CDATA\[
    end: "]]>"
attribute-cellspacing: 
  name: meta.attribute-with-value.html
  begin: (cellpadding)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')([0-9]{0,5}|[0-9]{0,4}%)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')([0-9]{0,5}|[0-9]{0,4}%)(?="|')
    - include: "#values-generic-invalid"
attribute-scheme: 
  name: meta.attribute-with-value.html
  begin: (scheme)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-class: 
  name: meta.attribute-with-value.html
  begin: (class)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
tag-abbr: 
  captures: 
    "1": 
      name: meta.tag.inline.abbr.html
    "2": 
      name: entity.name.tag.inline.abbr.html
  begin: (<(abbr)\b)
  end: ((abbr)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.abbr.html
    begin: (?<=>)
    end: (</(?=abbr))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.abbr.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
no-pcdata: 
  patterns: 
  - include: "#sgml-declarations"
  - include: "#entities"
  - include: "#stray-char"
  - include: "#bad-tags"
attribute-alt: 
  name: meta.attribute-with-value.html
  begin: (alt)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
tag-a: 
  captures: 
    "1": 
      name: meta.tag.inline.a.html
    "2": 
      name: entity.name.tag.inline.a.html
  begin: (<(a)\b)
  end: ((a)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.a.html
    begin: (?<=>)
    end: (</(?=a))
    patterns: 
    - include: "#tag-group-a.content"
  - name: meta.tag.inline.a.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-charset"
    - include: "#attribute-href"
    - include: "#attribute-hreflang"
    - include: "#attribute-name"
    - include: "#attribute-rel"
    - include: "#attribute-rev"
    - include: "#attribute-target"
    - include: "#attribute-type"
    - include: "#attribute-shape"
    - include: "#attribute-coords"
    - include: "#attributes-group-common"
    - include: "#attributes-group-focus"
    - include: "#attributes-illegal_char"
entities: 
  patterns: 
  - name: constant.character.entity.html
    match: "&([a-zA-Z]+|#[0-9]+|#x[0-9a-fA-F]+);"
  - name: invalid.illegal.bad-ampersand.html
    match: "&(?!([a-zA-Z]+|#[0-9]+|#x[0-9a-fA-F]+);)"
attribute-axis: 
  name: meta.attribute-with-value.html
  begin: (axis)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
tag-b: 
  captures: 
    "1": 
      name: meta.tag.inline.b.html
    "2": 
      name: entity.name.tag.inline.b.html
  begin: (<(b)\b)
  end: ((b)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.b.html
    begin: (?<=>)
    end: (</(?=b))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.b.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
pcdata: 
  patterns: 
  - include: "#sgml-declarations"
  - include: "#entities"
  - include: "#bad-tags"
attribute-headers: 
  name: meta.attribute-with-value.html
  begin: (headers)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[a-zA-Z][a-zA-Z0-9\-_:.]*(\s+[a-zA-Z][a-zA-Z0-9\-_:.]*)*(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[a-zA-Z][a-zA-Z0-9\-_:.]*(\s+[a-zA-Z][a-zA-Z0-9\-_:.]*)*(?="|')
    - include: "#values-generic-invalid"
tag-input: 
  endCaptures: 
    "1": 
      name: meta.tag.form.input.html
    "2": 
      name: invalid.illegal.terminator.html
  begin: (<(input)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.form.input.html
    "2": 
      name: entity.name.tag.form.input.html
  end: (/>|(>))
  patterns: 
  - name: meta.tag.form.input.html
    begin: ""
    end: (?=/>|>)
    patterns: 
    - include: "#attribute-accept"
    - include: "#attribute-alt"
    - include: "#attribute-checked"
    - include: "#attribute-disabled"
    - include: "#attribute-maxlength"
    - include: "#attribute-name"
    - include: "#attribute-onchange"
    - include: "#attribute-onselect"
    - include: "#attribute-readonly"
    - include: "#attribute-size"
    - include: "#attribute-src"
    - include: "#attribute-type-input"
    - include: "#attribute-usemap"
    - include: "#attribute-value"
    - include: "#attributes-group-common"
    - include: "#attributes-group-focus"
    - include: "#attributes-illegal_char"
tag-group-inline.forms: 
  patterns: 
  - include: "#tag-input"
  - include: "#tag-select"
  - include: "#tag-textarea"
  - include: "#tag-label"
  - include: "#tag-button"
tag-address: 
  captures: 
    "1": 
      name: meta.tag.block.address.html
    "2": 
      name: entity.name.tag.block.address.html
  begin: (<(address)\b)
  end: ((address)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.address.html
    begin: (?<=>)
    end: (</(?=address))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.block.address.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-onselect: 
  patterns: 
  - name: meta.attribute-with-value.html
    begin: (onselect)\s*=\s*(?=(["']).*?["'])
    applyEndPatternLast: "1"
    beginCaptures: 
      "1": 
        name: entity.other.attribute-name.html
    end: ""
    patterns: 
    - name: string.quoted.double.html
      begin: "\""
      contentName: source.js.embedded.html
      end: "\""
    - name: string.quoted.single.html
      begin: "'"
      contentName: source.js.embedded.html
      end: "'"
attribute-border: 
  name: meta.attribute-with-value.html
  begin: (border)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
attribute-colspan: 
  name: meta.attribute-with-value.html
  begin: (colspan)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
attribute-type-input: 
  name: meta.attribute-with-value.html
  begin: (type)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')(text|password|checkbox|button|radio|submit|reset|file|hidden|image)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')(text|password|checkbox|button|radio|submit|reset|file|hidden|image)(?="|')
    - include: "#values-generic-invalid"
tag-li: 
  captures: 
    "1": 
      name: meta.tag.block.li.html
    "2": 
      name: entity.name.tag.block.li.html
  begin: (<(li)\b)
  end: ((li)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.li.html
    begin: (?<=>)
    end: (</(?=li))
    patterns: 
    - include: "#tag-group-flow"
  - name: meta.tag.block.li.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-legend: 
  captures: 
    "1": 
      name: meta.tag.block.legend.html
    "2": 
      name: entity.name.tag.block.legend.html
  begin: (<(legend)\b)
  end: ((legend)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.legend.html
    begin: (?<=>)
    end: (</(?=legend))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.block.legend.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-accesskey"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-group-phrase: 
  patterns: 
  - include: "#tag-em"
  - include: "#tag-strong"
  - include: "#tag-dfn"
  - include: "#tag-code"
  - include: "#tag-q"
  - include: "#tag-samp"
  - include: "#tag-kbd"
  - include: "#tag-var"
  - include: "#tag-cite"
  - include: "#tag-abbr"
  - include: "#tag-acronym"
  - include: "#tag-sub"
  - include: "#tag-sup"
tag-base: 
  endCaptures: 
    "1": 
      name: meta.tag.meta.base.html
    "2": 
      name: invalid.illegal.terminator.html
  begin: (<(base)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.meta.base.html
    "2": 
      name: entity.name.tag.meta.base.html
  end: (/>|(>))
  patterns: 
  - name: meta.tag.meta.base.html
    begin: ""
    end: (?=/>|>)
    patterns: 
    - include: "#attribute-id"
    - include: "#attribute-href"
    - include: "#attributes-illegal_char"
attribute-accesskey: 
  name: meta.attribute-with-value.html
  begin: (accesskey)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[[:alnum:]](?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[[:alnum:]](?="|')
    - include: "#values-generic-invalid"
  comment: "Bug: Does not correctly represent the single Character attribute."
attribute-rowspan: 
  name: meta.attribute-with-value.html
  begin: (rowspan)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')[0-9]+(?="|')
    - include: "#values-generic-invalid"
attribute-frame: 
  name: meta.attribute-with-value.html
  begin: (frame)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - name: string.quoted.double.html
    begin: (?<!"|')"
    end: "\""
    patterns: 
    - match: (?<="|')(void|above|below|hsides|lhs|rhs|vsides|box|border)(?="|')
    - include: "#values-generic-invalid"
  - name: string.quoted.single.html
    begin: (?<!"|')'
    end: "'"
    patterns: 
    - match: (?<="|')(void|above|below|hsides|lhs|rhs|vsides|box|border)(?="|')
    - include: "#values-generic-invalid"
attribute-target: 
  name: meta.attribute-with-value.html
  begin: (target)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
attribute-content: 
  name: meta.attribute-with-value.html
  begin: (content)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"
tag-sup: 
  captures: 
    "1": 
      name: meta.tag.inline.sup.html
    "2": 
      name: entity.name.tag.inline.sup.html
  begin: (<(sup)\b)
  end: ((sup)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.sup.html
    begin: (?<=>)
    end: (</(?=sup))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.sup.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-h1: 
  captures: 
    "1": 
      name: meta.tag.block.h1.html
    "2": 
      name: entity.name.tag.block.h1.html
  begin: (<(h1)\b)
  end: ((h1)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.h1.html
    begin: (?<=>)
    end: (</(?=h1))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.block.h1.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-group-form.content: 
  patterns: 
  - include: "#tag-group-block"
  - include: "#tag-group-misc"
attribute-onunload: 
  patterns: 
  - name: meta.attribute-with-value.html
    begin: (onunload)\s*=\s*(?=(["']).*?["'])
    applyEndPatternLast: "1"
    beginCaptures: 
      "1": 
        name: entity.other.attribute-name.html
    end: ""
    patterns: 
    - name: string.quoted.double.html
      begin: "\""
      contentName: source.js.embedded.html
      end: "\""
    - name: string.quoted.single.html
      begin: "'"
      contentName: source.js.embedded.html
      end: "'"
tag-tr: 
  captures: 
    "1": 
      name: meta.tag.block.tr.html
    "2": 
      name: entity.name.tag.block.tr.html
  begin: (<(tr)\b)
  end: ((tr)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.tr.html
    begin: (?<=>)
    end: (</(?=tr))
    patterns: 
    - include: "#tag-td"
    - include: "#tag-th"
    - include: "#no-pcdata"
  - name: meta.tag.block.tr.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-align"
    - include: "#attribute-char"
    - include: "#attribute-charoff"
    - include: "#attribute-valign"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-title: 
  captures: 
    "1": 
      name: meta.tag.block.title.html
    "2": 
      name: entity.name.tag.block.title.html
  begin: (<(title)\b)
  end: ((title)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.title.html
    begin: (?<=>)
    end: (</(?=title))
    patterns: 
    - include: "#pcdata"
  - name: meta.tag.block.title.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-id"
    - include: "#attributes-group-i18n"
    - include: "#attributes-illegal_char"
tag-samp: 
  captures: 
    "1": 
      name: meta.tag.inline.samp.html
    "2": 
      name: entity.name.tag.inline.samp.html
  begin: (<(samp)\b)
  end: ((samp)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.inline.samp.html
    begin: (?<=>)
    end: (</(?=samp))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.inline.samp.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-pre: 
  captures: 
    "1": 
      name: meta.tag.block.pre.html
    "2": 
      name: entity.name.tag.block.pre.html
  begin: (<(pre)\b)
  end: ((pre)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.pre.html
    begin: (?<=>)
    end: (</(?=pre))
    patterns: 
    - include: "#tag-group-pre.content"
  - name: meta.tag.block.pre.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attribute-xml:space"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-param: 
  endCaptures: 
    "1": 
      name: meta.tag.meta.param.html
    "2": 
      name: invalid.illegal.terminator.html
  begin: (<(param)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.meta.param.html
    "2": 
      name: entity.name.tag.meta.param.html
  end: (/>|(>))
  patterns: 
  - name: meta.tag.meta.param.html
    begin: ""
    end: (?=/>|>)
    patterns: 
    - include: "#attribute-id"
    - include: "#attribute-name"
    - include: "#attribute-type"
    - include: "#attribute-value"
    - include: "#attribute-valuetype"
    - include: "#attributes-illegal_char"
tag-object: 
  endCaptures: 
    "1": 
      name: meta.tag.object.object.html
    "4": 
      name: entity.name.tag.object.object.html
  begin: (<(object)\b)
  beginCaptures: 
    "1": 
      name: meta.tag.object.object.html
    "2": 
      name: entity.name.tag.object.object.html
  end: ((/>)|((object)>))
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.object.object.html
    begin: (?<=[^/]>)
    end: (</(?=object))
    patterns: 
    - include: "#tag-group-block"
    - include: "#tag-group-inline"
    - include: "#tag-group-misc"
    - include: "#tag-param"
    - include: "#tag-form"
    - include: "#pcdata"
  - name: meta.tag.object.object.html
    begin: ""
    end: ((?=/>)|>)
    patterns: 
    - include: "#attribute-classid"
    - include: "#attribute-codebase"
    - include: "#attribute-codetype"
    - include: "#attribute-data"
    - include: "#attribute-declare"
    - include: "#attribute-height"
    - include: "#attribute-name"
    - include: "#attribute-standby"
    - include: "#attribute-tabindex"
    - include: "#attribute-type"
    - include: "#attribute-usemap"
    - include: "#attribute-width"
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-h2: 
  captures: 
    "1": 
      name: meta.tag.block.h2.html
    "2": 
      name: entity.name.tag.block.h2.html
  begin: (<(h2)\b)
  end: ((h2)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.h2.html
    begin: (?<=>)
    end: (</(?=h2))
    patterns: 
    - include: "#tag-group-inline-master"
  - name: meta.tag.block.h2.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
tag-dd: 
  captures: 
    "1": 
      name: meta.tag.block.dd.html
    "2": 
      name: entity.name.tag.block.dd.html
  begin: (<(dd)\b)
  end: ((dd)>)
  patterns: 
  - endCaptures: 
      "1": 
        name: meta.tag.block.dd.html
    begin: (?<=>)
    end: (</(?=dd))
    patterns: 
    - include: "#tag-group-flow"
  - name: meta.tag.block.dd.html
    begin: ""
    end: ">"
    patterns: 
    - include: "#attributes-group-common"
    - include: "#attributes-illegal_char"
attribute-coords: 
  name: meta.attribute-with-value.html
  begin: (coords)\s*=\s*(?=(["']).*?["'])
  applyEndPatternLast: "1"
  beginCaptures: 
    "1": 
      name: entity.other.attribute-name.html
  end: ""
  patterns: 
  - include: "#values-generic-valid"

uuid: 65A224BD-5EEF-4D5D-8630-D3EAD551B8F0 foldingStartMarker: (<(?i:(head|table|thead|tbody|tfoot|tr|div|fieldset|style|script|ul|ol|form|dl))b.*?>|{{?(if|foreach|capture|literal|foreach|php|section|strip)|{s*$) patterns:

foldingStopMarker: (</(?i:(head|table|thead|tbody|tfoot|tr|div|fieldset|style|script|ul|ol|form|dl))>|{{?/(if|foreach|capture|literal|foreach|php|section|strip)|(^|s)}) keyEquivalent: ^~X