Alice bids 1btc at $10
Bob bids 0.5BTC at $100
Charlie Asks 1btc at $5
In order execution, Alice gets fulfilled, Charlie gets $10 (is that right or does Alice get for $5 or what?)
No.
Alice bids 1btc at $10
Bob bids 0.5BTC at $100
at this moment still nothing happens, $100 is the highest bid.
Charlie Asks 1btc at $5
now the highest bid is filled (charlie sells 0.5 at $100 to bob), then fills the 0.5 at $10
Out-of-order:
Anything can happen: for example charlie fills the 1฿ @ $10 (although the bob 0.5฿ @$100 bid would have been there already because it came in before charlie's ask) and then the $100 bid of bob still remains.