Как предлагается в комментарии, \Z
: устанавливает позицию в конце строки или перед разделителем строки прямо в конце строки
values = ["123456", "098765", "Invalid:", "123", "12345a", "as3445", "/n123456", "123456\n"]
for v in values:
print("{:10s} {}".format(v, bool(re.match("^[0-9]{6}\Z", v))))
123456 True
098765 True
Invalid: False
123 False
12345a False
as3445 False
/n123456 False
123456
False