The underlying mechanism doesn't matter if it's wrong.
Those familiar with the mathematical notation would think:
1. '1 < 2 < 3' parses to '(1 < 2) and (2 < 3)'.
2. '3 - 4 - 5' parses to '(3 - 4) - 5'.
3. '3 ^ 4 ^ 5' parses to '3 ^ (4 ^ 5)'.
Ruby's convention is clever, but ultimately wrong, and this is one of the cases.