Модификаторы regex Orient-db

Я работаю с базой данных orient-db, и у меня проблемы с сопоставлением шаблонов регулярных выражений. Мне действительно нужен модификатор без учета регистра, который должен присутствовать в запросе, но как-то он не работает, как я ожидаю.

Запрос:

select from UserAccounts where email MATCHES '^ther.*' 

Возвращает как ожидаемые совпадения в нижнем регистре.

Всякий раз, когда я пытаюсь добавить модификатор, внешние разделители, т.е.

 select from UserAccounts where email MATCHES '\^ther.*\i' 

Я получаю пустую коллекцию. На самом деле запрос возвращает пустую коллекцию всякий раз, когда присутствуют разделители.

Если нет способа присоединить модификаторы, я мог бы заменить каждый символ «альфа» на выражение в квадратных скобках, т. Е.

 select from UserAccounts where email MATCHES "^[tT][hH][eE][rR].*" 

Но я не очень доволен этим решением.

Использование модификатора регулярных выражений Java без учета регистра (из специальных конструкций шаблона) работает в OrientDB 1.7.9 – для вашего примера:

 select from UserAccounts where email MATCHES '(?i)^ther.*' 

(См. Также: Шаблон – специальные конструкции )

Я добавил комментарий к соответствующей проблеме OrientDB.

К сожалению, нет способа указать модификаторы для регулярного выражения в операторе спичек .

На данный момент хорошим решением будет создание пользовательской функции , в которой вы можете использовать всю мощь регулярных выражений JS.

Но мы определенно должны добавить возможность указывать модификаторы в MATCHES , можете ли вы создать запрос функции ?