Regex y Unicode

Tengo un script que analiza los nombres de archivo de los episodios de TV (show.name.s01e02.avi por ejemplo), toma el nombre del episodio (de la API www.thetvdb.com) y los cambia automáticamente a algo más agradable (Show Name - [01x02 ] .avi)

El script funciona bien, es decir, hasta que lo intentas y lo usas en archivos que tienen nombres de usuario de Unicode (algo en lo que realmente nunca pensé, ya que todos los archivos que tengo son en inglés, por lo que casi todo está incluido)[a-zA-Z0-9'\-])

¿Cómo puedo permitir que las expresiones regulares coincidan con los caracteres acentuados y los me gusta? Actualmente la sección de configuración de expresiones regulares se parece a ...

config['valid_filename_chars'] = """0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@£$%^&*()_+=-[]{}"'.,<>`~? """
config['valid_filename_chars_regex'] = re.escape(config['valid_filename_chars'])

config['name_parse'] = [
    # foo_[s01]_[e01]
    re.compile('''^([%s]+?)[ \._\-]\[[Ss]([0-9]+?)\]_\[[Ee]([0-9]+?)\]?[^\\/]*''% (config['valid_filename_chars_regex'])),
    # foo.1x09*
    re.compile('''^([%s]+?)[ \._\-]\[?([0-9]+)x([0-9]+)[^\\/]*'' % (config['valid_filename_chars_regex'])),
    # foo.s01.e01, foo.s01_e01
    re.compile('''^([%s]+?)[ \._\-][Ss]([0-9]+)[\.\- ]?[Ee]([0-9]+)[^\\/]*'' % (config['valid_filename_chars_regex'])),
    # foo.103*
    re.compile('''^([%s]+)[ \._\-]([0-9]{1})([0-9]{2})[\._ -][^\\/]*'' % (config['valid_filename_chars_regex'])),
    # foo.0103*
    re.compile('''^([%s]+)[ \._\-]([0-9]{2})([0-9]{2,3})[\._ -][^\\/]*'' % (config['valid_filename_chars_regex'])),
]

Respuestas a la pregunta(4)

Su respuesta a la pregunta