Dividir cadenas en palabras con múltiples delimitadores de límite de palabra

Creo que lo que quiero hacer es una tarea bastante común, pero no he encontrado ninguna referencia en la web. Tengo texto con puntuación, y quiero una lista de las palabras.

"Hey, you - what are you doing here!?"

debiera ser

['hey', 'you', 'what', 'are', 'you', 'doing', 'here']

Pero Pythonstr.split() solo funciona con un argumento, así que tengo todas las palabras con la puntuación después de que me haya separado con espacios en blanco. ¿Algunas ideas?

Respuestas a la pregunta(29)

Su respuesta a la pregunta