<dict>
<key>begin</key>
<string>(?x)
(?: ^ # begin-of-line
| (?: (?<!else|new|=) ) # or word + space before name
)
(?: IFACEMETHOD|STDMETHOD)\(([A-Za-z_][A-Za-z0-9_]*)\)
\s*(\() # start bracket or end-of-line
</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.c++</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.c</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.c</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.c</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?x)
(?: ^ # begin-of-line
| (?: (?<!else|new|=) ) # or word + space before name
)
(?: IFACEMETHOD|STDMETHOD)\(([A-Za-z_][A-Za-z0-9_]*)\)
\s*(\() # start bracket or end-of-line
</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.c++</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.c</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.c</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.c</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?x)
(?: ^ # begin-of-line
| (?: (?<!else|new|=) ) # or word + space before name
)
(?: IFACEMETHOD_|STDMETHOD_|IFACEMETHODIMP_|STDMETHODIMP_)\(
(.*), \s
([A-Za-z_][A-Za-z0-9_]*)
\)
\s*(\() # start bracket or end-of-line
</string>
<key>beginCaptures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.c++</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.c</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.c</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.c</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>