diff --git a/tests/rules-data/match/text/cclmatch.xml b/tests/rules-data/match/text/cclmatch.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d1e4e8efee86a2c31d199fe36f149fb5c9c7cdc8
--- /dev/null
+++ b/tests/rules-data/match/text/cclmatch.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <sentence>
+   <tok>
+    <orth>Sp.</orth>
+    <lex><base>sp.</base><ctag>subst:sg:nom:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:gen:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:dat:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:acc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:inst:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:loc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:voc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:nom:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:gen:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:dat:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:acc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:inst:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:loc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:voc:f</ctag></lex>
+   </tok>
+   <tok>
+    <orth>z</orth>
+    <lex><base>z</base><ctag>prep:gen:nwok</ctag></lex>
+    <lex><base>z</base><ctag>prep:inst:nwok</ctag></lex>
+    <lex><base>z</base><ctag>qub</ctag></lex>
+   </tok>
+   <tok>
+    <orth>o</orth>
+    <lex><base>o</base><ctag>prep:acc</ctag></lex>
+    <lex><base>o</base><ctag>prep:loc</ctag></lex>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>.</orth>
+    <lex><base>.</base><ctag>interp</ctag></lex>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>o</orth>
+    <lex><base>o</base><ctag>prep:acc</ctag></lex>
+    <lex><base>o</base><ctag>prep:loc</ctag></lex>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>.</orth>
+    <lex><base>.</base><ctag>interp</ctag></lex>
+   </tok>
+   <tok>
+    <orth>Sp.</orth>
+    <lex><base>sp.</base><ctag>subst:sg:nom:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:gen:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:dat:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:acc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:inst:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:loc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:voc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:nom:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:gen:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:dat:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:acc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:inst:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:loc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:voc:f</ctag></lex>
+   </tok>
+   <tok>
+    <orth>z</orth>
+    <lex><base>z</base><ctag>prep:gen:nwok</ctag></lex>
+    <lex><base>z</base><ctag>prep:inst:nwok</ctag></lex>
+    <lex><base>z</base><ctag>qub</ctag></lex>
+   </tok>
+   <tok>
+    <orth>o</orth>
+    <lex><base>o</base><ctag>prep:acc</ctag></lex>
+    <lex><base>o</base><ctag>prep:loc</ctag></lex>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>.</orth>
+    <lex><base>.</base><ctag>interp</ctag></lex>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>ooo</orth>
+    <lex><base>ooo</base><ctag>qub</ctag></lex>
+   </tok>
+  </sentence>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/match/text/cclmatch1.ccl b/tests/rules-data/match/text/cclmatch1.ccl
new file mode 100644
index 0000000000000000000000000000000000000000..9b1ed19378eb9d0def185a6818decd41bb4fc98d
--- /dev/null
+++ b/tests/rules-data/match/text/cclmatch1.ccl
@@ -0,0 +1,8 @@
+apply(
+  match(
+    text("Sp. z o.o.")
+  ),
+  actions(
+    mark(M, "Co")
+  )
+)
diff --git a/tests/rules-data/match/text/cclmatch1.out.xml b/tests/rules-data/match/text/cclmatch1.out.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a5d8c2514713841ffaf3ade1cb98d3d5128270e6
--- /dev/null
+++ b/tests/rules-data/match/text/cclmatch1.out.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <sentence>
+   <tok>
+    <orth>Sp.</orth>
+    <lex><base>sp.</base><ctag>subst:sg:nom:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:gen:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:dat:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:acc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:inst:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:loc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:voc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:nom:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:gen:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:dat:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:acc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:inst:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:loc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:voc:f</ctag></lex>
+    <ann chan="Co" head="1">1</ann>
+   </tok>
+   <tok>
+    <orth>z</orth>
+    <lex><base>z</base><ctag>prep:gen:nwok</ctag></lex>
+    <lex><base>z</base><ctag>prep:inst:nwok</ctag></lex>
+    <lex><base>z</base><ctag>qub</ctag></lex>
+    <ann chan="Co">1</ann>
+   </tok>
+   <tok>
+    <orth>o</orth>
+    <lex><base>o</base><ctag>prep:acc</ctag></lex>
+    <lex><base>o</base><ctag>prep:loc</ctag></lex>
+    <ann chan="Co">1</ann>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>.</orth>
+    <lex><base>.</base><ctag>interp</ctag></lex>
+    <ann chan="Co">1</ann>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>o</orth>
+    <lex><base>o</base><ctag>prep:acc</ctag></lex>
+    <lex><base>o</base><ctag>prep:loc</ctag></lex>
+    <ann chan="Co">1</ann>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>.</orth>
+    <lex><base>.</base><ctag>interp</ctag></lex>
+    <ann chan="Co">1</ann>
+   </tok>
+   <tok>
+    <orth>Sp.</orth>
+    <lex><base>sp.</base><ctag>subst:sg:nom:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:gen:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:dat:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:acc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:inst:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:loc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:voc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:nom:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:gen:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:dat:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:acc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:inst:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:loc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:voc:f</ctag></lex>
+    <ann chan="Co">0</ann>
+   </tok>
+   <tok>
+    <orth>z</orth>
+    <lex><base>z</base><ctag>prep:gen:nwok</ctag></lex>
+    <lex><base>z</base><ctag>prep:inst:nwok</ctag></lex>
+    <lex><base>z</base><ctag>qub</ctag></lex>
+    <ann chan="Co">0</ann>
+   </tok>
+   <tok>
+    <orth>o</orth>
+    <lex><base>o</base><ctag>prep:acc</ctag></lex>
+    <lex><base>o</base><ctag>prep:loc</ctag></lex>
+    <ann chan="Co">0</ann>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>.</orth>
+    <lex><base>.</base><ctag>interp</ctag></lex>
+    <ann chan="Co">0</ann>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>ooo</orth>
+    <lex><base>ooo</base><ctag>qub</ctag></lex>
+    <ann chan="Co">0</ann>
+   </tok>
+  </sentence>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/match/text/cclmatch2.ccl b/tests/rules-data/match/text/cclmatch2.ccl
new file mode 100644
index 0000000000000000000000000000000000000000..96885ffbb7bb4f741af3621a95b4d4a21518b96f
--- /dev/null
+++ b/tests/rules-data/match/text/cclmatch2.ccl
@@ -0,0 +1,12 @@
+apply(
+  match(
+    text("Sp."),
+    inter(class[0], {prep}),
+    repeat(text("o."))
+  ),
+  actions(
+    mark(:1, "Sp"),
+    mark(:2, "Z"),
+    mark(:3, "O")
+  )
+)
diff --git a/tests/rules-data/match/text/cclmatch2.out.xml b/tests/rules-data/match/text/cclmatch2.out.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eda51ad7674295b3adc0c8aa9d04317db7a6e848
--- /dev/null
+++ b/tests/rules-data/match/text/cclmatch2.out.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <sentence>
+   <tok>
+    <orth>Sp.</orth>
+    <lex><base>sp.</base><ctag>subst:sg:nom:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:gen:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:dat:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:acc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:inst:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:loc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:voc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:nom:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:gen:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:dat:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:acc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:inst:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:loc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:voc:f</ctag></lex>
+    <ann chan="O">0</ann>
+    <ann chan="Sp" head="1">1</ann>
+    <ann chan="Z">0</ann>
+   </tok>
+   <tok>
+    <orth>z</orth>
+    <lex><base>z</base><ctag>prep:gen:nwok</ctag></lex>
+    <lex><base>z</base><ctag>prep:inst:nwok</ctag></lex>
+    <lex><base>z</base><ctag>qub</ctag></lex>
+    <ann chan="O">0</ann>
+    <ann chan="Sp">0</ann>
+    <ann chan="Z" head="1">1</ann>
+   </tok>
+   <tok>
+    <orth>o</orth>
+    <lex><base>o</base><ctag>prep:acc</ctag></lex>
+    <lex><base>o</base><ctag>prep:loc</ctag></lex>
+    <ann chan="O" head="1">1</ann>
+    <ann chan="Sp">0</ann>
+    <ann chan="Z">0</ann>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>.</orth>
+    <lex><base>.</base><ctag>interp</ctag></lex>
+    <ann chan="O">1</ann>
+    <ann chan="Sp">0</ann>
+    <ann chan="Z">0</ann>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>o</orth>
+    <lex><base>o</base><ctag>prep:acc</ctag></lex>
+    <lex><base>o</base><ctag>prep:loc</ctag></lex>
+    <ann chan="O">1</ann>
+    <ann chan="Sp">0</ann>
+    <ann chan="Z">0</ann>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>.</orth>
+    <lex><base>.</base><ctag>interp</ctag></lex>
+    <ann chan="O">1</ann>
+    <ann chan="Sp">0</ann>
+    <ann chan="Z">0</ann>
+   </tok>
+   <tok>
+    <orth>Sp.</orth>
+    <lex><base>sp.</base><ctag>subst:sg:nom:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:gen:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:dat:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:acc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:inst:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:loc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:sg:voc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:nom:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:gen:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:dat:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:acc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:inst:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:loc:f</ctag></lex>
+    <lex><base>sp.</base><ctag>subst:pl:voc:f</ctag></lex>
+    <ann chan="Sp" head="1">2</ann>
+   </tok>
+   <tok>
+    <orth>z</orth>
+    <lex><base>z</base><ctag>prep:gen:nwok</ctag></lex>
+    <lex><base>z</base><ctag>prep:inst:nwok</ctag></lex>
+    <lex><base>z</base><ctag>qub</ctag></lex>
+    <ann chan="O">0</ann>
+    <ann chan="Sp">0</ann>
+    <ann chan="Z" head="1">2</ann>
+   </tok>
+   <tok>
+    <orth>o</orth>
+    <lex><base>o</base><ctag>prep:acc</ctag></lex>
+    <lex><base>o</base><ctag>prep:loc</ctag></lex>
+    <ann chan="O" head="1">2</ann>
+    <ann chan="Sp">0</ann>
+    <ann chan="Z">0</ann>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>.</orth>
+    <lex><base>.</base><ctag>interp</ctag></lex>
+    <ann chan="O">2</ann>
+    <ann chan="Sp">0</ann>
+    <ann chan="Z">0</ann>
+   </tok>
+   <ns/>
+   <tok>
+    <orth>ooo</orth>
+    <lex><base>ooo</base><ctag>qub</ctag></lex>
+    <ann chan="O">0</ann>
+    <ann chan="Sp">0</ann>
+    <ann chan="Z">0</ann>
+   </tok>
+  </sentence>
+ </chunk>
+</chunkList>
+</cesAna>