anchor.diff:      | EmojiPresentationCharacter )
     NonspacingMark*;
   EmojiCoreSequence:
  -    EmojiModifierSequence
  -  | EmojiCombiningSequence
  +    EmojiCombiningSequence
     | EmojiFlagSequence;
   fragment EmojiZWJElement:
  -    EmojiModifierSequence
  -  | EmojiPresentationSequence
  +    EmojiPresentationSequence
     | EmojiPresentationCharacter
     | ExtendedPictographic
     | EmojiNRK;
  
positive.code: fragment EmojiPresentationCharacter: [\p{EmojiPresentation=EmojiDefault}];
  fragment TextPresentationSequence: EmojiPresentationCharacter VS15;
  fragment EmojiPresentationSequence: TextPresentationCharacter VS16;
  fragment EmojiModifierSequence:
      [\p{Grapheme_Cluster_Break=E_Base}\p{Grapheme_Cluster_Break=E_Base_GAZ}] [\p{Grapheme_Cluster_Break=E_Modifier}];
  fragment EmojiFlagSequence:
      [\p{Grapheme_Cluster_Break=Regional_Indicator}] [\p{Grapheme_Cluster_Break=Regional_Indicator}];
  fragment ExtendedPictographic: [\p{Extended_Pictographic}];
  
negative.code:     CRLF
    | Prepend* ( emoji_sequence | HangulSyllable | NonControl ) ( Extend | ZWJ | SpacingMark )*;
  
  graphemes: grapheme_cluster* EOF;
  