Build, test, and debug regular expressions
Tokenizes Rubik's cube algorithm notation: captures single face turns (U, D, F, B, L, R), slice moves (M, E, S), and cube rotations (x, y, z), each with optional inverse modifiers ('', i, -) or a double-turn (2). Also matches parenthesized move groups with optional repetition counts or inverses, plus bracketed wide/rotation moves and special tokens like o2u, cc2, par, and prn. Designed case-insensitive for use in cube algorithm parsers, trainers, and visualizers.