Из сообщения об ошибке я предполагаю, что вы используете консоль RDF4J или Workbench. Существует открытая проблема с экранированием специальных символов для регулярных выражений SPARQL в этих инструментах. См. https://github.com/eclipse/rdf4j-tools/issues/72.
Существует обходной путь, который заключается не просто в удвоении обратной косой черты, как предложил Тим в своем ответе, но в использовании 4 обратной косой черты для каждого специального символа. Вам также понадобится добавить третий аргумент к вашему REPLACE
, чтобы сделать его легальным (предположительно, вы хотите оставить только расширение):
SELECT DISTINCT
*
WHERE {
?s <http://URI/identifier> ?o .
BIND(REPLACE(?o,".*\\\\.(\\\\w+)", "$1") AS ?filetype)
} LIMIT 10
Правда, некрасиво. Исправление работает над.