import re
txt='''\
STDMETHOD_(MyFunc)(
D2D1_SIZE_U size,
_In_opt_ CONST void *srcData,
) PURE;
STDMETHOD(MyFunc2)(
_In_opt_ CONST void *srcData2,
UINT32 pitch2,
) PURE;\
STDMETHOD_(void, GetFactory)(
_Outptr_ ID2D1Factory **factory
) CONST PURE;
'''
matches = re.findall(r'(\bSTDMETHOD_?\b([\s\S]*?)\bPURE\b)',txt)
print matches
aW1wb3J0IHJlCnR4dD0nJydcClNURE1FVEhPRF8oTXlGdW5jKSgKRDJEMV9TSVpFX1Ugc2l6ZSwKX0luX29wdF8gQ09OU1Qgdm9pZCAqc3JjRGF0YSwKKSBQVVJFOwoKU1RETUVUSE9EKE15RnVuYzIpKApfSW5fb3B0XyBDT05TVCB2b2lkICpzcmNEYXRhMiwKVUlOVDMyIHBpdGNoMiwgCikgUFVSRTtcCgpTVERNRVRIT0RfKHZvaWQsIEdldEZhY3RvcnkpKApfT3V0cHRyXyBJRDJEMUZhY3RvcnkgKipmYWN0b3J5CikgQ09OU1QgUFVSRTsKJycnCgptYXRjaGVzID0gcmUuZmluZGFsbChyJyhcYlNURE1FVEhPRF8/XGIoW1xzXFNdKj8pXGJQVVJFXGIpJyx0eHQpCnByaW50IG1hdGNoZXM=
[('STDMETHOD_(MyFunc)(\nD2D1_SIZE_U size,\n_In_opt_ CONST void *srcData,\n) PURE', '(MyFunc)(\nD2D1_SIZE_U size,\n_In_opt_ CONST void *srcData,\n) '), ('STDMETHOD(MyFunc2)(\n_In_opt_ CONST void *srcData2,\nUINT32 pitch2, \n) PURE', '(MyFunc2)(\n_In_opt_ CONST void *srcData2,\nUINT32 pitch2, \n) '), ('STDMETHOD_(void, GetFactory)(\n_Outptr_ ID2D1Factory **factory\n) CONST PURE', '(void, GetFactory)(\n_Outptr_ ID2D1Factory **factory\n) CONST ')]