ESC[1;2 <- shift
ESC[1;3 <- alt
ESC[1;4 <- shift-alt
ESC[1;5 <- ctrl
ESC[1;6 <- shift-ctrl
ESC[1;7 <- ctrl-alt
ESC[1;8 <- shift-alt-ctrl
ESC[1;9 <- meta
ESC[1;10 <- shift-meta
ESC[1;11 <- alt-meta
ESC[1;12 <- shift-alt-meta
ESC[1;13 <- ctrl-meta
ESC[1;14 <- shift-ctrl-meta
ESC[1;15 <- ctrl-alt-meta
ESC[1;16 <- shift-alt-ctrl-meta
Control Sequence Introducer - sequences
ESCAPE = ESC [
PARAMETER_BYTES = 0–9:;<=>?
INTERMEDIATE_BYTES = !"#$%&'()*+,-./
FINAL_BYTE = @A–Z[\]^_`a–z{|}~
ESCAPE [PARAMETER_BYTES] [INTERMEDIATE_BYTES] FINAL_BYTE
ESC[1;2 <- shift
ESC[1;3 <- alt
ESC[1;4 <- shift-alt
ESC[1;5 <- ctrl
ESC[1;6 <- shift-ctrl
ESC[1;7 <- ctrl-alt
ESC[1;8 <- shift-alt-ctrl
ESC[1;9 <- meta
ESC[1;10 <- shift-meta
ESC[1;11 <- alt-meta
ESC[1;12 <- shift-alt-meta
ESC[1;13 <- ctrl-meta
ESC[1;14 <- shift-ctrl-meta
ESC[1;15 <- ctrl-alt-meta
ESC[1;16 <- shift-alt-ctrl-meta
Control Sequence Introducer - sequences
ESCAPE =
ESC [PARAMETER_BYTES =
0–9:;<=>?INTERMEDIATE_BYTES =
!"#$%&'()*+,-./FINAL_BYTE =
@A–Z[\]^_`a–z{|}~ESCAPE [PARAMETER_BYTES] [INTERMEDIATE_BYTES] FINAL_BYTE