import re
string = "\nsetting1: short string\nsetting2: much longer string\nwith a newline in it\nsetting3: short string\n"
result = re.sub(r"(?m)^\w+:.*(?:\n\w+(?:[^\S\n].*)?)+$", lambda m: m.group().replace('\n', ' '), string)
print(result)
aW1wb3J0IHJlCgpzdHJpbmcgPSAiXG5zZXR0aW5nMTogc2hvcnQgc3RyaW5nXG5zZXR0aW5nMjogbXVjaCBsb25nZXIgc3RyaW5nXG53aXRoIGEgbmV3bGluZSBpbiBpdFxuc2V0dGluZzM6IHNob3J0IHN0cmluZ1xuIgpyZXN1bHQgPSByZS5zdWIociIoP20pXlx3KzouKig/OlxuXHcrKD86W15cU1xuXS4qKT8pKyQiLCBsYW1iZGEgbTogbS5ncm91cCgpLnJlcGxhY2UoJ1xuJywgJyAnKSwgc3RyaW5nKQpwcmludChyZXN1bHQp