@Stiv's gut appears to be correct. Looking at the Qat help page, this is what it says about length constraints:
A length constraint consists of a sequence of variables bounded on both sides by vertical bar characters |, followed by an equals sign, followed by a length specification as described under ‘Qualified patterns’ above (without the colon).
Recursively following the definitions from "Qualified patterns" to "Compound patterns" to "Simple patterns" to "Elements", variables are never mentioned. Remember that Qat won't let you put variables on the RHS anyways.
So, to make this work - to force the lengths of two variables to be equal - neither can go on the RHS of a length constraint. You'd need a special qualified pattern (say
QP) to go there, one that had a fixed length between both
|B|=QP but was of variable length itself... which means it would have to be a variable, and we're back to the initial problem.
You can, as @Stiv said, simply hardcode a length in and then change it over several runs, as in