anchor.diff:      ;
       
   groupGraphPatternSub
  -    : triplesBlock (graphPatternNotTriples DOT? triplesBlock?)* -> triplesBlock (graphPatternNotTriples triplesBlock?)*
  -    |(graphPatternNotTriples DOT? triplesBlock?)+ -> (graphPatternNotTriples triplesBlock?)+
  +    : triplesBlock groupGraphPatternSubDetail* -> triplesBlock groupGraphPatternSubDetail*
  +    | groupGraphPatternSubDetail+ -> groupGraphPatternSubDetail+
  +    ;
  +
  +groupGraphPatternSubDetail
  +    : graphPatternNotTriples DOT? triplesBlock? -> graphPatternNotTriples triplesBlock?
       ;
   
   triplesBlock
  
positive.code:     ;
  
  subSelect
      : selectClause whereClause solutionModifier	-> ^(SUBSELECT whereClause* solutionModifier*)
      ;
      	
  selectClause
  
negative.code: 
  baseDecl
      : BASE IRI_REF -> ^(BASE IRI_REF)
      ; 
  
  prefixDecl
      : PREFIX PNAME_NS IRI_REF -> ^(PREFIX PNAME_NS IRI_REF)
  