The only matching rule

Caches match from the left. Never from the middle.

Hit · stable left, variable right
Req AsystemtoolsdocsQ: prices?
Req BsystemtoolsdocsQ: hours?

Shared prefix is gold. Only the last user turn differs. Hit on system + tools + docs.

Miss · noise on the left
Req Ats=10:01systemdocsQ: prices?
Req Bts=10:02systemdocsQ: hours?

The first tokens already differ. Matching stops at position zero. cached_tokens = 0.