test((data)*|case*)+
testdata
test((data)*|case*)+
testdataa
test((data)*|case*)+
testdatacasedata
test((data)*|case*)+
testdatacasedataa
(recursion)*((test|tset)((data)*|case*)+)+
testdatacasedataa
(recursion)*((test|tset)((data)*|case*)+)+
testdatacase
(recursion)*((test|tset)((data)*|case*)+)+
recursiontestdatacase
(recursion)*((test|tset)((data)*|case*)+)+
recursionntestdatacase
(recursion)*((test|tset)((data)*|case*)+)+
recursiontsetdatacasecasecasecasecasecasecasecasecasedatadatadatadatadatacase
(recursion)*((test|tset)((data)*|case*)+)+
recursiontsetdatacasecasecasecasecasecasecasecasecasedatadatadatadatadatacasea
c*d*a*b*c*d*aba*b*
aaaaaab
a*b*aba*b*
ab