I think it’s more complicated than that. Sometimes, the matching engine begins to fill the order then stops and fills other orders. It’s not FIFO neither LIFO
Matching is strict FIFO, there is no priority besides price and time.
On my speculation looking at it what can be happening is a visualization artifact where orders placed on the inverse market USDC/BTC on this case have a different precision level and are in truth slightly better priced - that should not happen if orders are being placed from the UI.
That confusion was one of the main reasons we removed the UI for inverted markets, but they are still available through the API because they are needed for market buys - a legacy issue that we intend to resolve by replacing current market orders with limit orders with defined slippage.
But as on the post shared with @Zino we will look at the specific trades and see what happened there.
The matching engine has hundreds of automated tests that run on every commit before allowing any changes being added to it - those tests include order matching priority.