# KOS_OP_MATCH_STORE - **Style**: EXTRA (RAW, RAW, RAW, CONST): mark depth, slot index, cursor depth, names tuple. - **Stack**: `[..., v]` -> `[...]`; cannot miss. - **Semantics**: Pop `v` into slot `a1` of the mark at depth `a0`, replacing what the slot held. When the cursor at depth `a2` walks a pair spine, a `Datum` `v`, and each `Datum` in a tuple `v`, takes the name `a3[a1]` as its binding; a `Datum` from a tuple, list or single value is stored unchanged. A cursor depth `a2` of 0 names no cursor: `v` was tested where it lay, and is stored unchanged. - **Invariants**: `a3` is a tuple with an entry at `a1`; Code construction raises `ValueError` otherwise. An index outside the mark's slots raises `SystemError`. - **Compiler form:** Emitted by the match compiler for each capture, with the names of the capture's scope, but for the root captures of a `match` arm, which are stored into their variables.