= {
'fail': re.compile(r'fail to allocate (\d+) bytes with (\d+) alignment', re.I),
'total': re.compile(r'Total heap size: (\d+) bytes'),
'used': re.compile(r'Used size: (\d+) bytes'),
'free': re.compile(r'Free size: (\d+) bytes'),
'mcb': re.compile(r'MCB size: (\d+) bytes(?:, align: (\d+) bytes)?'),
'free_blk': re.compile(r'Free block: MCB=0x([0-9a-fA-F]+), buffer=0x([0-9a-fA-F]+), usable_size=(\d+) bytes'
r'(?:, caller=0x([0-9a-fA-F]+), idx=(\d+))?'),
'alloc': re.compile(r'Allocated: MCB=0x([0-9a-fA-F]+), buffer_start=0x([0-9a-fA-F]+), '
r'max_size=(\d+) bytes, caller=0x([0-9a-fA-F]+), idx=(\d+), freed=(\d+)'),
'locked': re.compile(r'heap locked on index (\d+)'),
'unlocked': re.compile(r'heap unlocked on index (\d+)'),
}