import re
regex = r"^room \d+(?:\n(?!room \d|service prov).*)*\nservice prov.*(?:\n(?!room|exit).*)*\nexit$"
test_str = ("room 31\n"
"name \"Bob\"\n"
"no TV outlet 49\n"
"exit\n"
"room 5\n"
"name \"Ted\"\n"
"service prov 10.1\n"
"outlet 49-50,52\n"
"exit\n"
"room 80\n"
"name \"Alice\"\n"
"outlet 49-50,52\n"
"dead outlet 1-20\n"
"exit\n"
"room 50\n"
"name \"Tim\"\n"
"outlet 49\n"
"exit\n"
"room 51\n"
"name \"Sue\"\n"
"service prov 10.2.0\n"
"outlet 49\n"
"exit")
print(re.findall(regex, test_str, re.MULTILINE))
aW1wb3J0IHJlCgpyZWdleCA9IHIiXnJvb20gXGQrKD86XG4oPyFyb29tIFxkfHNlcnZpY2UgcHJvdikuKikqXG5zZXJ2aWNlIHByb3YuKig/OlxuKD8hcm9vbXxleGl0KS4qKSpcbmV4aXQkIgoKdGVzdF9zdHIgPSAoInJvb20gMzFcbiIKCSJuYW1lIFwiQm9iXCJcbiIKCSJubyBUViBvdXRsZXQgNDlcbiIKCSJleGl0XG4iCgkicm9vbSA1XG4iCgkibmFtZSBcIlRlZFwiXG4iCgkic2VydmljZSBwcm92IDEwLjFcbiIKCSJvdXRsZXQgNDktNTAsNTJcbiIKCSJleGl0XG4iCgkicm9vbSA4MFxuIgoJIm5hbWUgXCJBbGljZVwiXG4iCgkib3V0bGV0IDQ5LTUwLDUyXG4iCgkiZGVhZCBvdXRsZXQgMS0yMFxuIgoJImV4aXRcbiIKCSJyb29tIDUwXG4iCgkibmFtZSBcIlRpbVwiXG4iCgkib3V0bGV0IDQ5XG4iCgkiZXhpdFxuIgoJInJvb20gNTFcbiIKCSJuYW1lIFwiU3VlXCJcbiIKCSJzZXJ2aWNlIHByb3YgMTAuMi4wXG4iCgkib3V0bGV0IDQ5XG4iCgkiZXhpdCIpCgpwcmludChyZS5maW5kYWxsKHJlZ2V4LCB0ZXN0X3N0ciwgcmUuTVVMVElMSU5FKSkKCg==