1 - At the formation of the "PatternTable", what is the function of the letter "B", before each sequence defining a column of leds?
B is an Arduino adaptation of 0b, meaning that the value is binary (base 2), not decimal (base 10).
2 - When the pattern created should be displayed, the following command is used: "memcpy_P( PatternBuf, PatternTable+PatternIdx, PLANESIZE );"
It looks like this command copies each line of the PatternTable to be displayed. What happens then to the letters "B"?
Nothing. The value stored in memory is always in binary. The B told the compiler to interpret the literal as a binary value when parsing it. The resulting value was stored in a memory address, in binary, with no conversion from decimal required.
3 - The basic element of the PatternTable has the format BXXX. In which part of the code is this element split, so that the information in each "X" may be obtained?
digitalWrite( LEDPin[ledpin++], PatternBuf[patbufidx] & (1 << ledcol) );
The value 1 is left shifted (multiplied by 2) some number of times (to create 1, 2, 4, 8, etc.) and used a mask to extract one bit from PatternBuf[n]. That one bit is one of the original digits in the binary number.
4 - What is the meaning of this syntax of the function digitalWrite: "digitalWrite( LEDPin[ledpin++], PatternBuf[patbufidx] & (1 << ledcol) );".
See number 3.