import re
pattern = r"~[^~#]*~|((?:(?!match-this).)*match-this(?:(?!match-this)[^#~])*)"
s = "match-this~match-this~ match-this ~match-this#match-this~match-this~match-this"
res = [m for m in re.findall(pattern, s) if m]
print (res)
aW1wb3J0IHJlCgpwYXR0ZXJuID0gciJ+W15+I10qfnwoKD86KD8hbWF0Y2gtdGhpcykuKSptYXRjaC10aGlzKD86KD8hbWF0Y2gtdGhpcylbXiN+XSkqKSIKcyA9ICJtYXRjaC10aGlzfm1hdGNoLXRoaXN+IG1hdGNoLXRoaXMgfm1hdGNoLXRoaXMjbWF0Y2gtdGhpc35tYXRjaC10aGlzfm1hdGNoLXRoaXMiCnJlcyA9IFttIGZvciBtIGluIHJlLmZpbmRhbGwocGF0dGVybiwgcykgaWYgbV0KCnByaW50IChyZXMp