r = """(?x)
{
    (\\w+)
    :
    (
        (?:
            [^{}]
            |
            {.+?}
        )+
    )
}
"""
z = "{1:xxxx}{2:xxxx}{3:{10:xxxx}}{4:'xxxx'}"
print(dict(re.findall(r, z)))
разделение сгруппированной строки фигурных скобок в python