Простой ответ: нет, невозможно создать RewriteRule, который может справиться с динамическим количеством переменных. Ваша единственная реальная возможность - это захватить основы и затем собрать все как один кусок и проанализировать его с помощью PHP. Может быть возможно улучшить то, что у вас сейчас есть, это зависит от того, является ли x = work во втором правиле опечаткой, и насколько согласованы переменные строки запроса ...
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)\.html$ index.php?x=$1&y=$2
Это шаблон, который вы можете увидеть в системе на основе MVC. Но они обычно имеют систему маршрутизации, позволяющую вам определять шаблоны для сопоставления (что аналогично необходимости добавлять RewriteRules разными способами).