¿Por qué mi expresión regular con r'string 'coincide pero no' string 'usando Python?

La forma en que funciona la expresión regular en Python es tan intensamente desconcertante que me enfurece cada segundo que pasa. Aquí está mi problema:

Entiendo que esto da un resultado:

re.search(r'\bmi\b', 'grand rapids, mi 49505)

mientras que esto no:

re.search('\bmi\b', 'grand rapids, mi 49505)

Y eso esta bien. Lo entiendo mucho. Ahora, tengo una expresión regular que se genera así:

regex = '|'.join(['\b' + str(state) + '\b' for state in states])

Si ahora lo hagore.search(regex, 'grand rapids, mi 49505'), falla por la misma razón que mi segundosearch() El ejemplo falla.

Mi pregunta: ¿Hay alguna forma de hacer lo que estoy tratando de hacer?

Respuestas a la pregunta(4)

Su respuesta a la pregunta