My points are related to functional programming features only.
In Python, unnamed function (create by lambda) can be only an expression. For example, with, try-except are not possible. This hinders functional programs expressiveness.
As for pattern matching, it’s not about regexps. It’s about breaking function definition into several parts. Matching part gets called. Here is one explanation (for Haskell): http://learnyouahaskell.com/syntax-in-functions Patterns can be quite involved. Python is getting closer, by the way: https://www.python.org/dev/peps/pep-0634/ (in 3.10) with case operator. Plus single dispatch https://www.python.org/dev/peps/pep-0443/ is quite old feature.
I also must admit that pipe operator (like |> in Elixir) is one more killer feature in functional programming… Can be somewhat emulated, but syntax support could be cool.
The above is not a lot. I believe Python will get there.