import re
REMOVE_LIST = ["(A mass = 200 GeV)", "More+[fun]+text"]

remove_with_boundaries = '|'.join([re.escape(x) for x in REMOVE_LIST if re.match(r'\w', x) and re.search(r'\w$', x)])
remove_with_no_boundaries = '|'.join([re.escape(x) for x in REMOVE_LIST if not re.match(r'\w', x) and not re.search(r'\w$', x)])
remove_with_right_boundaries = '|'.join([re.escape(x) for x in REMOVE_LIST if not re.match(r'\w', x) and re.search(r'\w$', x)])
remove_with_left_boundaries = '|'.join([re.escape(x) for x in REMOVE_LIST if re.match(r'\w', x) and not re.search(r'\w$', x)])

ptrn = ''
if len(remove_with_boundaries) > 0:
	ptrn += r'\b(?:'+remove_with_boundaries+r')\b'
if len(remove_with_left_boundaries) > 0:
	ptrn += r'|\b(?:' + remove_with_left_boundaries + r')'
if len(remove_with_right_boundaries) > 0:
	ptrn += r'|(?:' + remove_with_right_boundaries + r')\b'
if len(remove_with_no_boundaries) > 0:
	ptrn += r'|(?:' + remove_with_no_boundaries + r')'

print ptrn
regex = re.compile(ptrn)
print regex.findall("Now, (A mass = 200 GeV) and More+[fun]+text inside")
