I genuinely do not understand why there was a need to introduce a dedicated syntax (the := operator) for named expressions, described in PEP572. E.g. one is supposed to write:
if (match := pattern.search(data)) is not None:
# Do something with match
why not simply if (match = pattern.search(data))? If it is because of backward compatibility, then note that the following expression: (x = 1) raises SyntaxError: invalid syntax, thus it would be enough to allow for it and start interpreting it as a named expression, instead of introducing the new := operator, which btw will in probably most cases be surrounded by parentheses anyway.
I feel like I don't see something obvious that everyone else gets ;-)