import re
p = r'\s*(?:\(\{[^/]*/\s*/\s*}\)|NULL)\s*'
test_str = "NULL ({ / / }) Regina ({ 4 p1 p2 / / }) Shueller ({ 5 p1 p2 / / }) works ({ / / }) for ({ / / }) Italy ({ 14 / / }) 's ({ 15 / / }) La ({ 16 / / }) Repubblica ({ 17 / / }) newspaper ({ 18 / / }) . ({ 38 / / })"
result = re.sub(p, " ", test_str)
print(result.strip())
print(re.sub(r"\s+([~`!@#$%^&*)_+=}\]\\|;:.>,-])", r"\1", result.strip()))
aW1wb3J0IHJlCnAgPSByJ1xzKig/OlwoXHtbXi9dKi9ccyovXHMqfVwpfE5VTEwpXHMqJwp0ZXN0X3N0ciA9ICJOVUxMICh7IC8gLyB9KSBSZWdpbmEgKHsgNCBwMSBwMiAvIC8gfSkgU2h1ZWxsZXIgKHsgNSBwMSBwMiAvIC8gfSkgd29ya3MgKHsgLyAvIH0pIGZvciAoeyAvIC8gfSkgSXRhbHkgKHsgMTQgLyAvIH0pICdzICh7IDE1IC8gLyB9KSBMYSAoeyAxNiAvIC8gfSkgUmVwdWJibGljYSAoeyAxNyAvIC8gfSkgbmV3c3BhcGVyICh7IDE4IC8gLyB9KSAuICh7IDM4IC8gLyB9KSIKcmVzdWx0ID0gcmUuc3ViKHAsICIgIiwgdGVzdF9zdHIpCnByaW50KHJlc3VsdC5zdHJpcCgpKQpwcmludChyZS5zdWIociJccysoW35gIUAjJCVeJiopXys9fVxdXFx8OzouPiwtXSkiLCByIlwxIiwgcmVzdWx0LnN0cmlwKCkpKQ==