Index: ce_tokeniser.l
===================================================================
--- ce_tokeniser.l	(revision 1564)
+++ ce_tokeniser.l	(working copy)
@@ -41,6 +41,7 @@
 OCT     [0-7]
 NUMBER  [DIGIT}*{DECIMAL}{DIGIT}+|{DIGIT}
 SEPARATOR "e+"|"e-"
+HEXS [0-9]|[A-F]|" "
 
 %%
 
@@ -95,14 +96,14 @@
 }
 
 
-{DIGIT}+|{HEX}+ {
+{HEXS}+ {
 if (strlen(yytext) > 40) parser_state.error = -PARSER_ERR_TOO_LONG_NUMBER;
 check_numbase(yytext);
 MPstr_to_num(yytext, v->base, celval.int_t);
 return tINUMBER;
 }
 
-{HEX}*{DECIMAL}{HEX}+ {
+{HEXS}*{DECIMAL}{HEXS} {
 if (strlen(yytext) > 40) parser_state.error = -PARSER_ERR_TOO_LONG_NUMBER;
 check_numbase(yytext);
 MPstr_to_num(yytext, v->base, celval.int_t);
