Orthogonal regions are concurrent. The behavior should be as if they were processed at the same time and the order should therefore not be relevant.
Orthogonal regions are executed concurrently, as soon as the enclosing state is entered (or if at top level, state machine is started). You would therefore have to track multiple parallel substates (i.e. the active state would be a tuple composed of the active state in each orthogonal region). The logic for event dispatching and matching is the same as for a simple composite state (composite state with one region), except that you need to consider all the regions before returning to the parent.
You can find more formal explanation in the UML specs, for example (highlighting by me):
A Region denotes a behavior fragment that may execute concurrently with its orthogonal Regions. Two or more Regions are orthogonal to each other if they are either owned by the same State or, at the topmost level, by the same StateMachine. A Region becomes active (i.e., it begins executing) either when its owning State is entered or, if it is directly owned by a StateMachine (i.e., it is a top level Region), when its owning StateMachine starts executing.
When orthogonal regions are owned by the same state, it's a composite state:
A composite State can be either a simple composite State with exactly one Region or an orthogonal State with multiple Regions.
And for the execution, the following semantic is indicated regarding regions:
A particular execution of a StateMachine is represented by a set of valid path traversals through one or more Region graphs, triggered by the dispatching of an Event occurrence that match active Triggers in these graphs.