I've discovered, I believe, that if (missing = SomeValue) is included among the assignment rules for a -recode-, the (missing = SomeValue) rule has to be the last one listed. I discovered this after some difficulty with apparently simple syntax (see below for an example), and I couldn't find anything in the documentation that required this. I found it in the context of using (missing = .), but the particular SomeValuevalue chosen is not the issue.

Any thoughts on this? Perhaps I missed it in the documentation. (In case it turns out to matter, I'm using 15.).
Code:
clear
set seed 1234
set obs 10
gen x = trunc(runiform() * 1000) in 1/8
recode x (1/5 = 1) (missing = 9) , gen(x1)    // works
recode x (missing = 9) (1/5 = 1), gen(x2)    // is a syntax error