   }
   {
     # specials within ()
-    'match': '(removeduplicates|keekfirst|keeplast)'
-    'captures':
-      '1':
-        'name': 'entity.name.tag.siteini'
+    'match': '(removeduplicates|keekfirst|keeplast)=*(name(,\\d+)?|title(,\\d+)?|equal(,\\d+)?)?'
+    'captures':
+      '1':
+        'name': 'entity.name.tag.siteini'
+      '2':
+        'name': 'entity.name.function.siteini'
   }
   {
     # specials xmltv attributes

  }
  {
    # specials style=
    'match': '[\\s+\\(](style)=(sentence|name|upper|lower|regex|urlencode|urldecode|unidecode|uniencode|htmlencodespecialchar|htmldecodespecialchar|jsondecode|base64encode|base64decode|sha256encode|md5encode|roman2arabicnumeral)'
    'captures':
      '1':
        'name': 'entity.name.tag.siteini'

  }
  {
    # specials (urldate|subpage).format
    'match': '\\.(format)\\s*\{\\s*(daycounter|date(string|number)|weekday(number|name)|letter|list)'
    'captures':
      '1':
        'name': 'entity.name.type.siteini'
      '2':
        'name': 'entity.name.function.siteini'
  }
  {
    # specials include/exlcude=
    'match': "(include|exclude)\\s*=\\s*(\\d+|first|last|\".+?\")(\\d+)?"
    'captures':
      '1':
        'name': 'entity.name.tag.siteini'
      '2':
        'name': 'entity.name.function.siteini'
      '3':
        'name': 'entity.name.tag.siteini'
  }
  {
    # specials (include/exlcude)block=
    'match': "(includeblock|excludeblock)\\s*=\\s*((\\d+|'.+?')(/\\d+|/'.+?')?|\".+?\")"
    'captures':
      '1':
        'name': 'entity.name.tag.siteini'
