não percebi muito bem a tua duvida, mas se te referes a condições como sendo as expressões regulares, podes negar determinados padrões ([^a] = não pode conter "a").
Com o flex não podes ir lá com a negativa. Já agora, aquilo a que chamas de condições, são na verdade autómatos ou estados, nos quais entras através do yy_push_state(STATE) e yy_pop_state(). Servem para processar certos tipos de informação para os quais simplex REGEX não funcionam.
Toda a literatura que li sobre o Flex trata os estados como start conditions, dai lhes chamar condições. Já resolvi o problema. Usei o estado para o oposto.
Se usa-se o if ou o else if não estaria a cumprir o objectivo do trabalho.