1. <lexer>
    
  2.   <config>
    
  3.     <name>reg</name>
    
  4.     <alias>registry</alias>
    
  5.     <filename>*.reg</filename>
    
  6.     <mime_type>text/x-windows-registry</mime_type>
    
  7.   </config>
    
  8.   <rules>
    
  9.     <state name="root">
    
  10.       <rule pattern="Windows Registry Editor.*">
    
  11.         <token type="Text"/>
    
  12.       </rule>
    
  13.       <rule pattern="\s+">
    
  14.         <token type="Text"/>
    
  15.       </rule>
    
  16.       <rule pattern="[;#].*">
    
  17.         <token type="CommentSingle"/>
    
  18.       </rule>
    
  19.       <rule pattern="(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$">
    
  20.         <bygroups>
    
  21.           <token type="Keyword"/>
    
  22.           <token type="Operator"/>
    
  23.           <token type="NameBuiltin"/>
    
  24.           <token type="Keyword"/>
    
  25.         </bygroups>
    
  26.       </rule>
    
  27.       <rule pattern="(&#34;(?:\\&#34;|\\\\|[^&#34;])+&#34;)([ \t]*)(=)([ \t]*)">
    
  28.         <bygroups>
    
  29.           <token type="NameAttribute"/>
    
  30.           <token type="Text"/>
    
  31.           <token type="Operator"/>
    
  32.           <token type="Text"/>
    
  33.         </bygroups>
    
  34.         <push state="value"/>
    
  35.       </rule>
    
  36.       <rule pattern="(.*?)([ \t]*)(=)([ \t]*)">
    
  37.         <bygroups>
    
  38.           <token type="NameAttribute"/>
    
  39.           <token type="Text"/>
    
  40.           <token type="Operator"/>
    
  41.           <token type="Text"/>
    
  42.         </bygroups>
    
  43.         <push state="value"/>
    
  44.       </rule>
    
  45.     </state>
    
  46.     <state name="value">
    
  47.       <rule pattern="-">
    
  48.         <token type="Operator"/>
    
  49.         <pop depth="1"/>
    
  50.       </rule>
    
  51.       <rule pattern="(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+)">
    
  52.         <bygroups>
    
  53.           <token type="NameVariable"/>
    
  54.           <token type="Punctuation"/>
    
  55.           <token type="LiteralNumber"/>
    
  56.         </bygroups>
    
  57.         <pop depth="1"/>
    
  58.       </rule>
    
  59.       <rule pattern=".+">
    
  60.         <token type="LiteralString"/>
    
  61.         <pop depth="1"/>
    
  62.       </rule>
    
  63.       <rule>
    
  64.         <pop depth="1"/>
    
  65.       </rule>
    
  66.     </state>
    
  67.   </rules>
    
  68. </lexer>