It may be as few bits as you want, so, if the file bit is #b10:0 (you must use the #), and the length is 5, the value pushed from b3:10/4 is the value of the .ul bit.
However, the instruction only shifts on the word level, so the bits in the entire b10:0 shift all the way to b10:0/15 after the .ul is dealt with. Even though the instruction shifts through the whole word, it ignores the value of bits 5-15. But this phenomenon prevents you from using 5-15 elsewhere in your code, as they WILL be manipulated by the BSL.
The same holds true if the length were 25--you must not use the last 7 bits of the second word elsewhere--the instruction shifts the remaining bits of the highest word included in the file.
The best thing to do is create a b file for each BSL in the program.
This is just nice to know stuff--I learned the hard way.