diff --git a/expected/virtuoso-dbpedia.out b/expected/virtuoso-dbpedia.out
index a388cda..289dda2 100644
--- a/expected/virtuoso-dbpedia.out
+++ b/expected/virtuoso-dbpedia.out
@@ -1826,8 +1826,157 @@ LIMIT 10
JapĆ³n
(1 row)
+CREATE FOREIGN TABLE public.regex_test1 (
+ txt text OPTIONS (variable '?o', nodetype 'literal')
+)
+SERVER dbpedia OPTIONS (
+ log_sparql 'true',
+ sparql '
+ PREFIX foaf:
+ SELECT * { foaf:name ?o}
+');
+/*
+ ILIKE expression containing "^" and "$"
+ */
+SELECT txt FROM public.regex_test1
+WHERE txt ~~* '%^___2reGeX$';
+INFO: SPARQL query sent to 'https://dbpedia.org/sparql':
+
+ PREFIX foaf:
+
+SELECT ?o
+{ foaf:name ?o FILTER(REGEX(?o,".*\\^...2reGeX\\$$","i"))
+}
+
+ txt
+-------------
+ ^txt2regex$
+(1 row)
+
+CREATE FOREIGN TABLE public.regex_test (
+ name text OPTIONS (variable '?name', nodetype 'literal'),
+ abstract text OPTIONS (variable '?abstract', expression 'STR(?abs)')
+)
+SERVER dbpedia OPTIONS (
+ log_sparql 'true',
+ sparql '
+ PREFIX foaf:
+ PREFIX dbo:
+ PREFIX dbr:
+ SELECT *
+ {?s a dbo:WrittenWork ;
+ dbo:genre dbr:Computer_magazine;
+ dbo:abstract ?abs ;
+ foaf:name ?name .
+ FILTER(LANG(?abs) = "en")
+ }');
+/*
+ LIKE and ILIKE expressions containing "."
+ */
+SELECT name FROM regex_test
+WHERE name LIKE '%P.P.%' AND abstract ILIKE '%wITh_MAC__.';
+INFO: SPARQL query sent to 'https://dbpedia.org/sparql':
+
+ PREFIX foaf:
+ PREFIX dbo:
+ PREFIX dbr:
+
+SELECT ?name (STR(?abs) AS ?abstract)
+{?s a dbo:WrittenWork ;
+ dbo:genre dbr:Computer_magazine;
+ dbo:abstract ?abs ;
+ foaf:name ?name .
+ FILTER(LANG(?abs) = "en")
+ FILTER(REGEX(?name,".*P\\.P\\..*"))
+ FILTER(REGEX(STR(?abs),".*wITh.MAC..\\.$","i"))
+}
+
+ name
+-----------------
+ Call-A.P.P.L.E.
+(1 row)
+
+/*
+ LIKE and ILIKE expressions containing "(" and "["
+ */
+SELECT name FROM regex_test
+WHERE abstract ~~ '%(Computer%' AND abstract ~~* '%[WwW%' ;
+INFO: SPARQL query sent to 'https://dbpedia.org/sparql':
+
+ PREFIX foaf:
+ PREFIX dbo:
+ PREFIX dbr:
+
+SELECT ?name (STR(?abs) AS ?abstract)
+{?s a dbo:WrittenWork ;
+ dbo:genre dbr:Computer_magazine;
+ dbo:abstract ?abs ;
+ foaf:name ?name .
+ FILTER(LANG(?abs) = "en")
+ FILTER(REGEX(STR(?abs),".*\\(Computer.*"))
+ FILTER(REGEX(STR(?abs),".*\\[WwW.*","i"))
+}
+
+ name
+------------
+ Computerra
+(1 row)
+
+/*
+ LIKE and ILIKE expressions containing "-"
+ */
+SELECT name FROM regex_test
+WHERE abstract ~~ '%VIC-_0%' AND abstract ~~* '%__-MoNtHlY%' AND name ~~ 'Your___';
+INFO: SPARQL query sent to 'https://dbpedia.org/sparql':
+
+ PREFIX foaf:
+ PREFIX dbo:
+ PREFIX dbr:
+
+SELECT ?name (STR(?abs) AS ?abstract)
+{?s a dbo:WrittenWork ;
+ dbo:genre dbr:Computer_magazine;
+ dbo:abstract ?abs ;
+ foaf:name ?name .
+ FILTER(LANG(?abs) = "en")
+ FILTER(REGEX(STR(?abs),".*VIC\\-.0.*"))
+ FILTER(REGEX(STR(?abs),".*..\\-MoNtHlY.*","i"))
+ FILTER(REGEX(?name,"^Your..."))
+}
+
+ name
+---------
+ Your 64
+(1 row)
+
+/*
+ LIKE and ILIKE expressions containing single and double quotes
+ */
+SELECT name FROM regex_test
+WHERE abstract ~~ '%"serious end"%' AND abstract ~~* E'%rEADer\'s%' ;
+INFO: SPARQL query sent to 'https://dbpedia.org/sparql':
+
+ PREFIX foaf:
+ PREFIX dbo:
+ PREFIX dbr:
+
+SELECT ?name (STR(?abs) AS ?abstract)
+{?s a dbo:WrittenWork ;
+ dbo:genre dbr:Computer_magazine;
+ dbo:abstract ?abs ;
+ foaf:name ?name .
+ FILTER(LANG(?abs) = "en")
+ FILTER(REGEX(STR(?abs),".*\"serious end\".*"))
+ FILTER(REGEX(STR(?abs),".*rEADer's.*","i"))
+}
+
+ name
+-----------
+ ST Review
+(1 row)
+
DROP SERVER dbpedia CASCADE;
-NOTICE: drop cascades to 18 other objects
+NOTICE: drop cascades to 20 other objects
DETAIL: drop cascades to foreign table film
drop cascades to foreign table politicians
drop cascades to foreign table party_members
@@ -1846,3 +1995,5 @@ drop cascades to foreign table generic_rdf_table
drop cascades to foreign table generic_rdf_table2
drop cascades to foreign table generic_rdf_table3
drop cascades to foreign table generic_rdf_table4
+drop cascades to foreign table regex_test1
+drop cascades to foreign table regex_test
diff --git a/sql/virtuoso-dbpedia.sql b/sql/virtuoso-dbpedia.sql
index cb3b624..2127a5a 100644
--- a/sql/virtuoso-dbpedia.sql
+++ b/sql/virtuoso-dbpedia.sql
@@ -816,4 +816,68 @@ FROM generic_rdf_table4
WHERE uri = 'http://dbpedia.org/resource/Japan'
LIMIT 10;
+
+
+CREATE FOREIGN TABLE public.regex_test1 (
+ txt text OPTIONS (variable '?o', nodetype 'literal')
+)
+SERVER dbpedia OPTIONS (
+ log_sparql 'true',
+ sparql '
+ PREFIX foaf:
+ SELECT * { foaf:name ?o}
+');
+
+
+/*
+ ILIKE expression containing "^" and "$"
+ */
+SELECT txt FROM public.regex_test1
+WHERE txt ~~* '%^___2reGeX$';
+
+
+
+CREATE FOREIGN TABLE public.regex_test (
+ name text OPTIONS (variable '?name', nodetype 'literal'),
+ abstract text OPTIONS (variable '?abstract', expression 'STR(?abs)')
+)
+SERVER dbpedia OPTIONS (
+ log_sparql 'true',
+ sparql '
+ PREFIX foaf:
+ PREFIX dbo:
+ PREFIX dbr:
+ SELECT *
+ {?s a dbo:WrittenWork ;
+ dbo:genre dbr:Computer_magazine;
+ dbo:abstract ?abs ;
+ foaf:name ?name .
+ FILTER(LANG(?abs) = "en")
+ }');
+
+/*
+ LIKE and ILIKE expressions containing "."
+ */
+SELECT name FROM regex_test
+WHERE name LIKE '%P.P.%' AND abstract ILIKE '%wITh_MAC__.';
+
+/*
+ LIKE and ILIKE expressions containing "(" and "["
+ */
+SELECT name FROM regex_test
+WHERE abstract ~~ '%(Computer%' AND abstract ~~* '%[WwW%' ;
+
+/*
+ LIKE and ILIKE expressions containing "-"
+ */
+SELECT name FROM regex_test
+WHERE abstract ~~ '%VIC-_0%' AND abstract ~~* '%__-MoNtHlY%' AND name ~~ 'Your___';
+
+/*
+ LIKE and ILIKE expressions containing single and double quotes
+ */
+SELECT name FROM regex_test
+WHERE abstract ~~ '%"serious end"%' AND abstract ~~* E'%rEADer\'s%' ;
+
+
DROP SERVER dbpedia CASCADE;
\ No newline at end of file