Eu não tenho um apache à mão para testar o que estou dizendo, mas você pode tentar usar grupos sem captura para a cidade. para que eles não quebrem sua $x
order
RewriteRule ^s/(.*)(?:-[A-Za-z-]+)?-drinks_alcoholic-(.*)_rating-(.*)_price-(.*)_page-(.*) search/q_$1/alcoholic_$2/rating_$3/price_$4/page_$5/
#( - start group
#?: - make it non-capturing, which means it will not effect $1,$2...
#- - if the group starts with -
#[A-Za-z-]+ - and looks like a words seperated by dashes (maybe you should enhance this a bit)
#)? - and the entire group may appear or not
No entanto, isso pode começar a ficar confuso se o seu termo de pesquisa (cerveja) for mais do que uma palavra (vinho tinto). Minha sugestão seria usar %20
ou sublinhado para espaços em palavras e traços para separadores de argumentos.