Я так и не понял, нужны ли именно регулярные выражения. Если в списках просто ссылки, а не шаблоны ссылок, то можно и простым link in text вместо регулярных выражений :
# blacklist, whitelist соответственно список запрещенных и разрешенных
def check(text):
if any(link in text for link in blacklist):
return False
elif any(link in text for link in whitelist):
return True
return False
Если же нужны именно регулярные выражения, можно их объединить для вида 'link1|link2|link3', может быть быстрее при большом количестве ссылок, например так:
def check(text):
if re.search('|'.join(map(re.escape, blacklist)), text):
return False
elif re.search('|'.join(map(re.escape, whitelist)), text):
return True
return False