When a targetLocation attribute is added to @BMRule, BMRunnerUtil appends "AT " followed by the value to the rule text. This means you can only use location specifiers that start with AT and not the ones which start with AFTER.
Appending the value directly would let you use AFTER specifiers (and any added in future), but break backwards compatibility. I see three options:
1) switch to requiring the full specifier in future, and break backwards compatibility
2) switch to requiring the full specifier in future, and handle prepend AT for anything starting with an existing specifier ("ENTRY", "INVOKE" etc)
3) check if the specifier starts with AFTER and do not prepend AT in that case. Do the same in future if there are any new first words