So I traced the feature a bit longer. In essense, why does this return the text: ( options { greedy=false; } : show:SOME_EXPRESSION {System.out.println(show);} )+ and why does this return null: show:( options { greedy=false; } : SOME_EXPRESSION )+ {System.out.println(show);} ? -- karl