I\'m getting a \"nothing to repeat\" error when I try to compile this:
search = re.compile(r\'([^a-zA-Z0-9])(%s)([^a-zA-Z0-9])\' % \'+test\', re.I) >
search = re.compile(r\'([^a-zA-Z0-9])(%s)([^a-zA-Z0-9])\' % \'+test\', re.I)
Escape the plus:
r'\+test'
The plus has a special meaning in regexes (meaning "match the previous once or several times"). Since in your regex it appears after an open paren, there is no "previous" to match repeatedly.