Spacebefore not working

Why doesn’t the spacebefore comment work here? I would expect the pattern 54AD to match here, and suggest AD54 but nothing happens.

<rule>
<pattern case_sensitive="yes">
<token regexp="yes">\d{1,4}</token>
<token spacebefore="no">AD</token>
</pattern>
<message>AD goes before the date (AD64): **<suggestion><match no="2"></match><match no="1"></match></suggestion>**. </message>
</rule>

Try <token regexp="yes">\d{1,4}AD</token> - the 54AD is not tokenized.