|m||Goes to the next mode (0>1>2>3>0)|
|?||Mode 0: increment the current cell.
Mode 1: Moves the pointer right.
Mode 2: Starts a while loop.
Mode 3: Outputs the current cell as an ascii character.
|!||Mode 0: decrement the current cell.
Mode 1: Moves the pointer left.
Mode 2: Ends a while loop.
Mode 3: Inputs into current cell the ascii code of a character character.
Because by just changing the mode you can get a equivalent to all BF commands, it is Turing-complete.