I know the docs say it has to be a bunch of zeroes at the start, the actual test is whether or not the generated value is below a certain number.
I've always thought that's how it worked since that is what is written in the original Bitcoin paper (which has for a long time been my only source of information on the protocol).
Example:
Treshold = 001010
If you check 001011 or 001001 then the number of leading zeros are the same but one number is below the threshold and the other is not.
Threshold is 001010
The numbers 001001 and 001011 have the same number of leading zeroes but one is below the threshold and the other is not.
For a more concrete example, if the requirement is that a 16-bit word is less than 4096, you only have to verify that it leads with 4 zeros.