import re
text = "X4IitemX6Nabc123"
rx1 = r'^X(\d+)'
m1 = re.search(rx1, text)
if m1:
rx2 = fr'^X(?P<namelen>\d+)I(?P<name>.{{{m1.group(1)}}})X(?P<numlen>\d+)N(?P<num>.+)$'
if re.search(rx2, text):
print(text, '-> MATCH!')
else:
print(text, '-> FAIL!')
else:
print(text, '-> FAIL!')
aW1wb3J0IHJlCnRleHQgPSAiWDRJaXRlbVg2TmFiYzEyMyIKcngxID0gcideWChcZCspJwptMSA9IHJlLnNlYXJjaChyeDEsIHRleHQpCmlmIG0xOgogIHJ4MiA9IGZyJ15YKD9QPG5hbWVsZW4+XGQrKUkoP1A8bmFtZT4ue3t7bTEuZ3JvdXAoMSl9fX0pWCg/UDxudW1sZW4+XGQrKU4oP1A8bnVtPi4rKSQnCiAgaWYgcmUuc2VhcmNoKHJ4MiwgdGV4dCk6CiAgICBwcmludCh0ZXh0LCAnLT4gTUFUQ0ghJykKICBlbHNlOgogIAlwcmludCh0ZXh0LCAnLT4gRkFJTCEnKQplbHNlOgogIHByaW50KHRleHQsICctPiBGQUlMIScp