oups>
          <token type="Punctuation" />
          <token type="NameAttribute" />
          <token type="Punctuation" />
          <token type="Operator" />
          <token type="TextWhitespace" />
        </bygroups>
        <push state="attr" />
      </rule>
      <rule pattern="([*#])([\w:.-]+)(\s*)">
        <bygroups>
          <token type="Punctuation" />
          <token type="NameAttribute" />
          <token type="Punctuation" />
        </bygroups>
      </rule>
    </state>
    <state name="ngExpression">
      <rule pattern="\s+(\|\s+)?">
        <token type="Text" />
      </rule>
      <rule pattern="\}\}">
        <token type="CommentPreproc" />
        <pop depth="1" />
      </rule>
      <rule pattern=":?(true|false)">
        <token type="LiteralStringBoolean" />
      </rule>
      <rule pattern=":?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
        <token type="LiteralStringDouble" />
      </rule>
      <rule pattern=":?&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
        <token type="LiteralStringSingle" />
      </rule>
      <rule pattern="[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?">
        <token type="LiteralNumber" />
      </rule>
      <rule pattern="[a-zA-Z][\w-]*(\(.*\))?">
        <token type="NameVariable" />
      </rule>
      <rule pattern="\.[\w-]+(\(.*\))?">
        <token type="NameVariable" />
      </rule>
      <rule pattern="(\?)(\s*)([^}\s]+)(\s*)(:)(\s*)([^}\s]+)(\s*)">
        <bygroups>
          <token type="Operator" />
          <token type="Text" />
          <token type="LiteralString" />
          <token type="Text" />
          <token type="Operator" />
          <token type="Text" />
          <token type="LiteralString" />
          <token type="Text" />
        </bygroups>
      </rule>
    </state>
  </rules>
</lexer>
