I added:
Debug print
D command prints current pointer value, current cell and 3 before and after values in such format:
[2] 1 170 123 0 2 5
^
It’s main use is as the name suggests, for debugging.
If blocks
They are defined as (operations) and operations exactly once only if current cell value is other than 0.
They are basically vanilla brainfuck loops, that execute once.
Temporary relative pointer operations
They look like this: $distance{operations}. They basically move the pointer temporarily by distance and execute operations there, after that, pointer will return to its original position, no matter the additional pointer moves inside {operations} block.
The distance can also be negative.