This looks like a bug to me. I can get the optional rule elements to work when followed by COMMA, as follows. DECLARE Feedback; (W{REGEXP("change|modify|alter")} W? W? W? COMMA) {-> MARK(Feedback)}; This would match the following. change the current rubric, change the rubric, change rubric, But if I have a W or a W with REGEXP as the element following the optional elements, it doesn't work. DECLARE Feedback; (W{REGEXP("change|modify|alter")} W? W? W? W{REGEXP("rubric")}) {-> MARK(Feedback)}; Doesn't match the following. (it should) change the current rubric change the rubric But it would match "change the the the rubric" (when words occur for optional elements) I've seen that there has been a similar issue sometime back: https://issues.apache.org/jira/browse/UIMA-3338 Not sure whether this issue related to that bug. I'm using UIMA RUTA workbench 2.3.1 on Eclipse Luna (4.4.2)