nl_tokens: abc ( ? : abc ) { 2 } - > ( ? : abc ) { 3 }
pl_tokens: function combineRepetitionWithPrevious ( alternative , child , index ) { const { node } = alternative ; if ( child . node . type === 'Repetition' && child . node . quantifier . greedy ) { let right = child . getChild ( ) ; let left ; if ( right . node . type === 'Group' && ! right . node . capturing ) { right = right . getChild ( ) ; } let rightLength ; if ( right . node . type === 'Alternative' ) { rightLength = right . node . expressions . length ; left = NodePath . getForNode ( { type : 'Alternative' , expressions : [ ... <mask> . expressions . slice ( index - rightLength , index ) ] } ) ; } else { rightLength = 1 ; left = alternative . getChild ( index - 1 ) ; if ( left . node . type === 'Group' && ! left . node . capturing ) { left = left . getChild ( ) ; } } if ( left . hasEqualSource ( right ) ) { for ( let j = index - rightLength ; j < index ; j ++ ) { alternative . getChild ( index - rightLength ) . remove ( ) ; } increaseQuantifierByOne ( child . node . quantifier ) ; return index - rightLength ; } } return index ; }