`match` and `case` are soft keywords, they are only keywords in certain parsing contexts, in all other cases they are plain identifiers.
If added to the filedef keyword list _all_ cases will be highlighted as keywords.
Unfortunately because they depend on parsing context `match` and `case` are not recognised as anything other than identifiers by the Python lexer which only recognises syntactic entities and does not recognise sufficient context.
The same issue exists for C++ which also has contextual keywords. In the C++ case identifiers like `final` or `override` are in the list of keywords, so perhaps it will be ok for Python, opinions by Python experts?