Your problem is a combination of the greediness of operator * and the use of a skipper. You need to keep in mind that alnum is a PrimitiveParser and that means that before every time this parser is tried, Spirit will pre-skip, and so the behaviour of your parser is:

alpha parses a.

The kleene operator starts.

alnum skips the space and then parses 6.

alnum skips the space and then parses l.

alnum parses i.

...

alnum parses l.

alnum skips the space and then parses 8.

alnum tries and fails to parse more. This completes the kleene operator with a parsed attribute of 6literal8.

"literal" tries and fails to parse.

The sequence operator fails and the invocation of phrase_parse returns false.