import re

pattern = r"\b(?P<year>\d{4})(-)?(?P<month>(?(2)\d\d?|\d\d))\b"
s = ("202301\n"
            "2023-1\n"
            "2023-01\n"
            "20231")

for m in re.finditer(pattern, s):
    print(m.groupdict())