Confusion with TCP and HTTP routing priorities

Hello, unless I am using the TCP/HTTP rules wrongly, there seem to be a weird edge case here

I expect the request to be redirected to *.example.com when querying test.example.com but instead it is redirected to the TCP service.

I expect the request to be redirected to www.example.com when querying www.example.com and it is working (is it because it is directly referred with the Host rule?)

Is it a bug or am I doing something horrible? I want the TCP service to be used in fallback when both Host and HostRegexp HTTP services rules are not matched.

Thank you

Share your Traefik static and dynamic config, and docker-compose.yml if used.

I made a github repo to reproduce the issue:

Does this help?

If both HTTP routers and TCP routers listen to the same entry points, the TCP routers will apply before the HTTP routers. If no matching route is found for the TCP routers, then the HTTP routers will take over.

(Traefik doc)

Then shouldn't the www.example.com also be resolved with the tcpservice?