You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2016/06/14 22:51:14 UTC

[02/12] lucene-solr:branch_6x: LUCENE-7318: graduate StandardAnalyzer and make it the default for IndexWriterConfig

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ba922148/lucene/test-framework/src/java/org/apache/lucene/analysis/standard/WordBreakTestUnicode_6_3_0.java
----------------------------------------------------------------------
diff --git a/lucene/test-framework/src/java/org/apache/lucene/analysis/standard/WordBreakTestUnicode_6_3_0.java b/lucene/test-framework/src/java/org/apache/lucene/analysis/standard/WordBreakTestUnicode_6_3_0.java
new file mode 100644
index 0000000..4a3731e
--- /dev/null
+++ b/lucene/test-framework/src/java/org/apache/lucene/analysis/standard/WordBreakTestUnicode_6_3_0.java
@@ -0,0 +1,5537 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.lucene.analysis.standard;
+
+
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.BaseTokenStreamTestCase;
+import org.junit.Ignore;
+
+/**
+ * This class was automatically generated by generateJavaUnicodeWordBreakTest.pl
+ * from: http://www.unicode.org/Public/6.3.0/ucd/auxiliary/WordBreakTest.txt
+ *
+ * WordBreakTest.txt indicates the points in the provided character sequences
+ * at which conforming implementations must and must not break words.  This
+ * class tests for expected token extraction from each of the test sequences
+ * in WordBreakTest.txt, where the expected tokens are those character
+ * sequences bounded by word breaks and containing at least one character
+ * from one of the following character sets:
+ *
+ *    \p{Script = Han}                (From http://www.unicode.org/Public/6.3.0/ucd/Scripts.txt)
+ *    \p{Script = Hiragana}
+ *    \p{LineBreak = Complex_Context} (From http://www.unicode.org/Public/6.3.0/ucd/LineBreak.txt)
+ *    \p{WordBreak = ALetter}         (From http://www.unicode.org/Public/6.3.0/ucd/auxiliary/WordBreakProperty.txt)
+ *    \p{WordBreak = Hebrew_Letter}
+ *    \p{WordBreak = Katakana}
+ *    \p{WordBreak = Numeric}         (Excludes full-width Arabic digits)
+ *    [\uFF10-\uFF19]                (Full-width Arabic digits)
+ */
+@Ignore
+public class WordBreakTestUnicode_6_3_0 extends BaseTokenStreamTestCase {
+
+  public void test(Analyzer analyzer) throws Exception {
+    // � 0001 � 0001 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0001",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 0001 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0001",
+                     new String[] {  });
+
+    // � 0001 � 000D �  #  � [0.2] <START OF HEADING> (Other) � [3.2] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\r",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 000D �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [3.2] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\r",
+                     new String[] {  });
+
+    // � 0001 � 000A �  #  � [0.2] <START OF HEADING> (Other) � [3.2] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\n",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 000A �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\n",
+                     new String[] {  });
+
+    // � 0001 � 000B �  #  � [0.2] <START OF HEADING> (Other) � [3.2] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u000B",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 000B �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u000B",
+                     new String[] {  });
+
+    // � 0001 � 3031 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u3031",
+                     new String[] { "\u3031" });
+
+    // � 0001 � 0308 � 3031 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u3031",
+                     new String[] { "\u3031" });
+
+    // � 0001 � 0041 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0041",
+                     new String[] { "\u0041" });
+
+    // � 0001 � 0308 � 0041 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0041",
+                     new String[] { "\u0041" });
+
+    // � 0001 � 003A �  #  � [0.2] <START OF HEADING> (Other) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u003A",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 003A �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u003A",
+                     new String[] {  });
+
+    // � 0001 � 002C �  #  � [0.2] <START OF HEADING> (Other) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u002C",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 002C �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u002C",
+                     new String[] {  });
+
+    // � 0001 � 002E �  #  � [0.2] <START OF HEADING> (Other) � [999.0] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u002E",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 002E �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u002E",
+                     new String[] {  });
+
+    // � 0001 � 0030 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0030",
+                     new String[] { "\u0030" });
+
+    // � 0001 � 0308 � 0030 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0030",
+                     new String[] { "\u0030" });
+
+    // � 0001 � 005F �  #  � [0.2] <START OF HEADING> (Other) � [999.0] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u005F",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 005F �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u005F",
+                     new String[] {  });
+
+    // � 0001 � 1F1E6 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\uD83C\uDDE6",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 1F1E6 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\uD83C\uDDE6",
+                     new String[] {  });
+
+    // � 0001 � 05D0 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u05D0",
+                     new String[] { "\u05D0" });
+
+    // � 0001 � 0308 � 05D0 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u05D0",
+                     new String[] { "\u05D0" });
+
+    // � 0001 � 0022 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\"",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 0022 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\"",
+                     new String[] {  });
+
+    // � 0001 � 0027 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0027",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 0027 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0027",
+                     new String[] {  });
+
+    // � 0001 � 00AD �  #  � [0.2] <START OF HEADING> (Other) � [4.0] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u00AD",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 00AD �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [4.0] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u00AD",
+                     new String[] {  });
+
+    // � 0001 � 0300 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0300",
+                     new String[] {  });
+
+    // � 0001 � 0308 � 0300 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [4.0] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0300",
+                     new String[] {  });
+
+    // � 0001 � 0061 � 2060 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] LATIN SMALL LETTER A (ALetter) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0061\u2060",
+                     new String[] { "\u0061\u2060" });
+
+    // � 0001 � 0308 � 0061 � 2060 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0061\u2060",
+                     new String[] { "\u0061\u2060" });
+
+    // � 0001 � 0061 � 003A �  #  � [0.2] <START OF HEADING> (Other) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0061\u003A",
+                     new String[] { "\u0061" });
+
+    // � 0001 � 0308 � 0061 � 003A �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0061\u003A",
+                     new String[] { "\u0061" });
+
+    // � 0001 � 0061 � 0027 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0061\u0027",
+                     new String[] { "\u0061" });
+
+    // � 0001 � 0308 � 0061 � 0027 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0061\u0027",
+                     new String[] { "\u0061" });
+
+    // � 0001 � 0061 � 0027 � 2060 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0061\u0027\u2060",
+                     new String[] { "\u0061" });
+
+    // � 0001 � 0308 � 0061 � 0027 � 2060 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0061\u0027\u2060",
+                     new String[] { "\u0061" });
+
+    // � 0001 � 0061 � 002C �  #  � [0.2] <START OF HEADING> (Other) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0061\u002C",
+                     new String[] { "\u0061" });
+
+    // � 0001 � 0308 � 0061 � 002C �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0061\u002C",
+                     new String[] { "\u0061" });
+
+    // � 0001 � 0031 � 003A �  #  � [0.2] <START OF HEADING> (Other) � [999.0] DIGIT ONE (Numeric) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0031\u003A",
+                     new String[] { "\u0031" });
+
+    // � 0001 � 0308 � 0031 � 003A �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0031\u003A",
+                     new String[] { "\u0031" });
+
+    // � 0001 � 0031 � 0027 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] DIGIT ONE (Numeric) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0031\u0027",
+                     new String[] { "\u0031" });
+
+    // � 0001 � 0308 � 0031 � 0027 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0031\u0027",
+                     new String[] { "\u0031" });
+
+    // � 0001 � 0031 � 002C �  #  � [0.2] <START OF HEADING> (Other) � [999.0] DIGIT ONE (Numeric) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0031\u002C",
+                     new String[] { "\u0031" });
+
+    // � 0001 � 0308 � 0031 � 002C �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0031\u002C",
+                     new String[] { "\u0031" });
+
+    // � 0001 � 0031 � 002E � 2060 �  #  � [0.2] <START OF HEADING> (Other) � [999.0] DIGIT ONE (Numeric) � [999.0] FULL STOP (MidNumLet) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0031\u002E\u2060",
+                     new String[] { "\u0031" });
+
+    // � 0001 � 0308 � 0031 � 002E � 2060 �  #  � [0.2] <START OF HEADING> (Other) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] FULL STOP (MidNumLet) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0001\u0308\u0031\u002E\u2060",
+                     new String[] { "\u0031" });
+
+    // � 000D � 0001 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0001",
+                     new String[] {  });
+
+    // � 000D � 0308 � 0001 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0001",
+                     new String[] {  });
+
+    // � 000D � 000D �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\r",
+                     new String[] {  });
+
+    // � 000D � 0308 � 000D �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [3.2] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\r",
+                     new String[] {  });
+
+    // � 000D � 000A �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.0] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\n",
+                     new String[] {  });
+
+    // � 000D � 0308 � 000A �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\n",
+                     new String[] {  });
+
+    // � 000D � 000B �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u000B",
+                     new String[] {  });
+
+    // � 000D � 0308 � 000B �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u000B",
+                     new String[] {  });
+
+    // � 000D � 3031 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u3031",
+                     new String[] { "\u3031" });
+
+    // � 000D � 0308 � 3031 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u3031",
+                     new String[] { "\u3031" });
+
+    // � 000D � 0041 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0041",
+                     new String[] { "\u0041" });
+
+    // � 000D � 0308 � 0041 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0041",
+                     new String[] { "\u0041" });
+
+    // � 000D � 003A �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u003A",
+                     new String[] {  });
+
+    // � 000D � 0308 � 003A �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u003A",
+                     new String[] {  });
+
+    // � 000D � 002C �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u002C",
+                     new String[] {  });
+
+    // � 000D � 0308 � 002C �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u002C",
+                     new String[] {  });
+
+    // � 000D � 002E �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u002E",
+                     new String[] {  });
+
+    // � 000D � 0308 � 002E �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u002E",
+                     new String[] {  });
+
+    // � 000D � 0030 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0030",
+                     new String[] { "\u0030" });
+
+    // � 000D � 0308 � 0030 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0030",
+                     new String[] { "\u0030" });
+
+    // � 000D � 005F �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u005F",
+                     new String[] {  });
+
+    // � 000D � 0308 � 005F �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u005F",
+                     new String[] {  });
+
+    // � 000D � 1F1E6 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\uD83C\uDDE6",
+                     new String[] {  });
+
+    // � 000D � 0308 � 1F1E6 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\uD83C\uDDE6",
+                     new String[] {  });
+
+    // � 000D � 05D0 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u05D0",
+                     new String[] { "\u05D0" });
+
+    // � 000D � 0308 � 05D0 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u05D0",
+                     new String[] { "\u05D0" });
+
+    // � 000D � 0022 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\"",
+                     new String[] {  });
+
+    // � 000D � 0308 � 0022 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\"",
+                     new String[] {  });
+
+    // � 000D � 0027 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0027",
+                     new String[] {  });
+
+    // � 000D � 0308 � 0027 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0027",
+                     new String[] {  });
+
+    // � 000D � 00AD �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u00AD",
+                     new String[] {  });
+
+    // � 000D � 0308 � 00AD �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [4.0] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u00AD",
+                     new String[] {  });
+
+    // � 000D � 0300 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0300",
+                     new String[] {  });
+
+    // � 000D � 0308 � 0300 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [4.0] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0300",
+                     new String[] {  });
+
+    // � 000D � 0061 � 2060 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] LATIN SMALL LETTER A (ALetter) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0061\u2060",
+                     new String[] { "\u0061\u2060" });
+
+    // � 000D � 0308 � 0061 � 2060 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0061\u2060",
+                     new String[] { "\u0061\u2060" });
+
+    // � 000D � 0061 � 003A �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] LATIN SMALL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0061\u003A",
+                     new String[] { "\u0061" });
+
+    // � 000D � 0308 � 0061 � 003A �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0061\u003A",
+                     new String[] { "\u0061" });
+
+    // � 000D � 0061 � 0027 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0061\u0027",
+                     new String[] { "\u0061" });
+
+    // � 000D � 0308 � 0061 � 0027 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0061\u0027",
+                     new String[] { "\u0061" });
+
+    // � 000D � 0061 � 0027 � 2060 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0061\u0027\u2060",
+                     new String[] { "\u0061" });
+
+    // � 000D � 0308 � 0061 � 0027 � 2060 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0061\u0027\u2060",
+                     new String[] { "\u0061" });
+
+    // � 000D � 0061 � 002C �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] LATIN SMALL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0061\u002C",
+                     new String[] { "\u0061" });
+
+    // � 000D � 0308 � 0061 � 002C �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0061\u002C",
+                     new String[] { "\u0061" });
+
+    // � 000D � 0031 � 003A �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] DIGIT ONE (Numeric) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0031\u003A",
+                     new String[] { "\u0031" });
+
+    // � 000D � 0308 � 0031 � 003A �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0031\u003A",
+                     new String[] { "\u0031" });
+
+    // � 000D � 0031 � 0027 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] DIGIT ONE (Numeric) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0031\u0027",
+                     new String[] { "\u0031" });
+
+    // � 000D � 0308 � 0031 � 0027 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0031\u0027",
+                     new String[] { "\u0031" });
+
+    // � 000D � 0031 � 002C �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] DIGIT ONE (Numeric) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0031\u002C",
+                     new String[] { "\u0031" });
+
+    // � 000D � 0308 � 0031 � 002C �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0031\u002C",
+                     new String[] { "\u0031" });
+
+    // � 000D � 0031 � 002E � 2060 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] DIGIT ONE (Numeric) � [999.0] FULL STOP (MidNumLet) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0031\u002E\u2060",
+                     new String[] { "\u0031" });
+
+    // � 000D � 0308 � 0031 � 002E � 2060 �  #  � [0.2] <CARRIAGE RETURN (CR)> (CR) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] FULL STOP (MidNumLet) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\r\u0308\u0031\u002E\u2060",
+                     new String[] { "\u0031" });
+
+    // � 000A � 0001 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0001",
+                     new String[] {  });
+
+    // � 000A � 0308 � 0001 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0001",
+                     new String[] {  });
+
+    // � 000A � 000D �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\r",
+                     new String[] {  });
+
+    // � 000A � 0308 � 000D �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [3.2] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\r",
+                     new String[] {  });
+
+    // � 000A � 000A �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\n",
+                     new String[] {  });
+
+    // � 000A � 0308 � 000A �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\n",
+                     new String[] {  });
+
+    // � 000A � 000B �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u000B",
+                     new String[] {  });
+
+    // � 000A � 0308 � 000B �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u000B",
+                     new String[] {  });
+
+    // � 000A � 3031 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u3031",
+                     new String[] { "\u3031" });
+
+    // � 000A � 0308 � 3031 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u3031",
+                     new String[] { "\u3031" });
+
+    // � 000A � 0041 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0041",
+                     new String[] { "\u0041" });
+
+    // � 000A � 0308 � 0041 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0041",
+                     new String[] { "\u0041" });
+
+    // � 000A � 003A �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u003A",
+                     new String[] {  });
+
+    // � 000A � 0308 � 003A �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u003A",
+                     new String[] {  });
+
+    // � 000A � 002C �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u002C",
+                     new String[] {  });
+
+    // � 000A � 0308 � 002C �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u002C",
+                     new String[] {  });
+
+    // � 000A � 002E �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u002E",
+                     new String[] {  });
+
+    // � 000A � 0308 � 002E �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u002E",
+                     new String[] {  });
+
+    // � 000A � 0030 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0030",
+                     new String[] { "\u0030" });
+
+    // � 000A � 0308 � 0030 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0030",
+                     new String[] { "\u0030" });
+
+    // � 000A � 005F �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u005F",
+                     new String[] {  });
+
+    // � 000A � 0308 � 005F �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u005F",
+                     new String[] {  });
+
+    // � 000A � 1F1E6 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\uD83C\uDDE6",
+                     new String[] {  });
+
+    // � 000A � 0308 � 1F1E6 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\uD83C\uDDE6",
+                     new String[] {  });
+
+    // � 000A � 05D0 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u05D0",
+                     new String[] { "\u05D0" });
+
+    // � 000A � 0308 � 05D0 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u05D0",
+                     new String[] { "\u05D0" });
+
+    // � 000A � 0022 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\"",
+                     new String[] {  });
+
+    // � 000A � 0308 � 0022 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\"",
+                     new String[] {  });
+
+    // � 000A � 0027 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0027",
+                     new String[] {  });
+
+    // � 000A � 0308 � 0027 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0027",
+                     new String[] {  });
+
+    // � 000A � 00AD �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u00AD",
+                     new String[] {  });
+
+    // � 000A � 0308 � 00AD �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [4.0] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u00AD",
+                     new String[] {  });
+
+    // � 000A � 0300 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0300",
+                     new String[] {  });
+
+    // � 000A � 0308 � 0300 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [4.0] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0300",
+                     new String[] {  });
+
+    // � 000A � 0061 � 2060 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] LATIN SMALL LETTER A (ALetter) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0061\u2060",
+                     new String[] { "\u0061\u2060" });
+
+    // � 000A � 0308 � 0061 � 2060 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0061\u2060",
+                     new String[] { "\u0061\u2060" });
+
+    // � 000A � 0061 � 003A �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] LATIN SMALL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0061\u003A",
+                     new String[] { "\u0061" });
+
+    // � 000A � 0308 � 0061 � 003A �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0061\u003A",
+                     new String[] { "\u0061" });
+
+    // � 000A � 0061 � 0027 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0061\u0027",
+                     new String[] { "\u0061" });
+
+    // � 000A � 0308 � 0061 � 0027 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0061\u0027",
+                     new String[] { "\u0061" });
+
+    // � 000A � 0061 � 0027 � 2060 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0061\u0027\u2060",
+                     new String[] { "\u0061" });
+
+    // � 000A � 0308 � 0061 � 0027 � 2060 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0061\u0027\u2060",
+                     new String[] { "\u0061" });
+
+    // � 000A � 0061 � 002C �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] LATIN SMALL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0061\u002C",
+                     new String[] { "\u0061" });
+
+    // � 000A � 0308 � 0061 � 002C �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0061\u002C",
+                     new String[] { "\u0061" });
+
+    // � 000A � 0031 � 003A �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] DIGIT ONE (Numeric) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0031\u003A",
+                     new String[] { "\u0031" });
+
+    // � 000A � 0308 � 0031 � 003A �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0031\u003A",
+                     new String[] { "\u0031" });
+
+    // � 000A � 0031 � 0027 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] DIGIT ONE (Numeric) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0031\u0027",
+                     new String[] { "\u0031" });
+
+    // � 000A � 0308 � 0031 � 0027 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0031\u0027",
+                     new String[] { "\u0031" });
+
+    // � 000A � 0031 � 002C �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] DIGIT ONE (Numeric) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0031\u002C",
+                     new String[] { "\u0031" });
+
+    // � 000A � 0308 � 0031 � 002C �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0031\u002C",
+                     new String[] { "\u0031" });
+
+    // � 000A � 0031 � 002E � 2060 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] DIGIT ONE (Numeric) � [999.0] FULL STOP (MidNumLet) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0031\u002E\u2060",
+                     new String[] { "\u0031" });
+
+    // � 000A � 0308 � 0031 � 002E � 2060 �  #  � [0.2] <LINE FEED (LF)> (LF) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] FULL STOP (MidNumLet) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\n\u0308\u0031\u002E\u2060",
+                     new String[] { "\u0031" });
+
+    // � 000B � 0001 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0001",
+                     new String[] {  });
+
+    // � 000B � 0308 � 0001 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0001",
+                     new String[] {  });
+
+    // � 000B � 000D �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\r",
+                     new String[] {  });
+
+    // � 000B � 0308 � 000D �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [3.2] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\r",
+                     new String[] {  });
+
+    // � 000B � 000A �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\n",
+                     new String[] {  });
+
+    // � 000B � 0308 � 000A �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\n",
+                     new String[] {  });
+
+    // � 000B � 000B �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u000B",
+                     new String[] {  });
+
+    // � 000B � 0308 � 000B �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u000B",
+                     new String[] {  });
+
+    // � 000B � 3031 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u3031",
+                     new String[] { "\u3031" });
+
+    // � 000B � 0308 � 3031 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u3031",
+                     new String[] { "\u3031" });
+
+    // � 000B � 0041 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0041",
+                     new String[] { "\u0041" });
+
+    // � 000B � 0308 � 0041 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0041",
+                     new String[] { "\u0041" });
+
+    // � 000B � 003A �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u003A",
+                     new String[] {  });
+
+    // � 000B � 0308 � 003A �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u003A",
+                     new String[] {  });
+
+    // � 000B � 002C �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u002C",
+                     new String[] {  });
+
+    // � 000B � 0308 � 002C �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u002C",
+                     new String[] {  });
+
+    // � 000B � 002E �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u002E",
+                     new String[] {  });
+
+    // � 000B � 0308 � 002E �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u002E",
+                     new String[] {  });
+
+    // � 000B � 0030 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0030",
+                     new String[] { "\u0030" });
+
+    // � 000B � 0308 � 0030 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0030",
+                     new String[] { "\u0030" });
+
+    // � 000B � 005F �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u005F",
+                     new String[] {  });
+
+    // � 000B � 0308 � 005F �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u005F",
+                     new String[] {  });
+
+    // � 000B � 1F1E6 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\uD83C\uDDE6",
+                     new String[] {  });
+
+    // � 000B � 0308 � 1F1E6 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\uD83C\uDDE6",
+                     new String[] {  });
+
+    // � 000B � 05D0 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u05D0",
+                     new String[] { "\u05D0" });
+
+    // � 000B � 0308 � 05D0 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u05D0",
+                     new String[] { "\u05D0" });
+
+    // � 000B � 0022 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\"",
+                     new String[] {  });
+
+    // � 000B � 0308 � 0022 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\"",
+                     new String[] {  });
+
+    // � 000B � 0027 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0027",
+                     new String[] {  });
+
+    // � 000B � 0308 � 0027 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0027",
+                     new String[] {  });
+
+    // � 000B � 00AD �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u00AD",
+                     new String[] {  });
+
+    // � 000B � 0308 � 00AD �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [4.0] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u00AD",
+                     new String[] {  });
+
+    // � 000B � 0300 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0300",
+                     new String[] {  });
+
+    // � 000B � 0308 � 0300 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [4.0] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0300",
+                     new String[] {  });
+
+    // � 000B � 0061 � 2060 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] LATIN SMALL LETTER A (ALetter) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0061\u2060",
+                     new String[] { "\u0061\u2060" });
+
+    // � 000B � 0308 � 0061 � 2060 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0061\u2060",
+                     new String[] { "\u0061\u2060" });
+
+    // � 000B � 0061 � 003A �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] LATIN SMALL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0061\u003A",
+                     new String[] { "\u0061" });
+
+    // � 000B � 0308 � 0061 � 003A �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0061\u003A",
+                     new String[] { "\u0061" });
+
+    // � 000B � 0061 � 0027 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0061\u0027",
+                     new String[] { "\u0061" });
+
+    // � 000B � 0308 � 0061 � 0027 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0061\u0027",
+                     new String[] { "\u0061" });
+
+    // � 000B � 0061 � 0027 � 2060 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0061\u0027\u2060",
+                     new String[] { "\u0061" });
+
+    // � 000B � 0308 � 0061 � 0027 � 2060 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0061\u0027\u2060",
+                     new String[] { "\u0061" });
+
+    // � 000B � 0061 � 002C �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] LATIN SMALL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0061\u002C",
+                     new String[] { "\u0061" });
+
+    // � 000B � 0308 � 0061 � 002C �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0061\u002C",
+                     new String[] { "\u0061" });
+
+    // � 000B � 0031 � 003A �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] DIGIT ONE (Numeric) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0031\u003A",
+                     new String[] { "\u0031" });
+
+    // � 000B � 0308 � 0031 � 003A �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0031\u003A",
+                     new String[] { "\u0031" });
+
+    // � 000B � 0031 � 0027 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] DIGIT ONE (Numeric) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0031\u0027",
+                     new String[] { "\u0031" });
+
+    // � 000B � 0308 � 0031 � 0027 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0031\u0027",
+                     new String[] { "\u0031" });
+
+    // � 000B � 0031 � 002C �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] DIGIT ONE (Numeric) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0031\u002C",
+                     new String[] { "\u0031" });
+
+    // � 000B � 0308 � 0031 � 002C �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0031\u002C",
+                     new String[] { "\u0031" });
+
+    // � 000B � 0031 � 002E � 2060 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] DIGIT ONE (Numeric) � [999.0] FULL STOP (MidNumLet) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0031\u002E\u2060",
+                     new String[] { "\u0031" });
+
+    // � 000B � 0308 � 0031 � 002E � 2060 �  #  � [0.2] <LINE TABULATION> (Newline) � [3.1] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] FULL STOP (MidNumLet) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u000B\u0308\u0031\u002E\u2060",
+                     new String[] { "\u0031" });
+
+    // � 3031 � 0001 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0001",
+                     new String[] { "\u3031" });
+
+    // � 3031 � 0308 � 0001 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0001",
+                     new String[] { "\u3031\u0308" });
+
+    // � 3031 � 000D �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [3.2] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\r",
+                     new String[] { "\u3031" });
+
+    // � 3031 � 0308 � 000D �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [3.2] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\r",
+                     new String[] { "\u3031\u0308" });
+
+    // � 3031 � 000A �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [3.2] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\n",
+                     new String[] { "\u3031" });
+
+    // � 3031 � 0308 � 000A �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\n",
+                     new String[] { "\u3031\u0308" });
+
+    // � 3031 � 000B �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [3.2] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u000B",
+                     new String[] { "\u3031" });
+
+    // � 3031 � 0308 � 000B �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u000B",
+                     new String[] { "\u3031\u0308" });
+
+    // � 3031 � 3031 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [13.0] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u3031",
+                     new String[] { "\u3031\u3031" });
+
+    // � 3031 � 0308 � 3031 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [13.0] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u3031",
+                     new String[] { "\u3031\u0308\u3031" });
+
+    // � 3031 � 0041 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0041",
+                     new String[] { "\u3031", "\u0041" });
+
+    // � 3031 � 0308 � 0041 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0041",
+                     new String[] { "\u3031\u0308", "\u0041" });
+
+    // � 3031 � 003A �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u003A",
+                     new String[] { "\u3031" });
+
+    // � 3031 � 0308 � 003A �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u003A",
+                     new String[] { "\u3031\u0308" });
+
+    // � 3031 � 002C �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u002C",
+                     new String[] { "\u3031" });
+
+    // � 3031 � 0308 � 002C �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u002C",
+                     new String[] { "\u3031\u0308" });
+
+    // � 3031 � 002E �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u002E",
+                     new String[] { "\u3031" });
+
+    // � 3031 � 0308 � 002E �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u002E",
+                     new String[] { "\u3031\u0308" });
+
+    // � 3031 � 0030 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0030",
+                     new String[] { "\u3031", "\u0030" });
+
+    // � 3031 � 0308 � 0030 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0030",
+                     new String[] { "\u3031\u0308", "\u0030" });
+
+    // � 3031 � 005F �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [13.1] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u005F",
+                     new String[] { "\u3031\u005F" });
+
+    // � 3031 � 0308 � 005F �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [13.1] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u005F",
+                     new String[] { "\u3031\u0308\u005F" });
+
+    // � 3031 � 1F1E6 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\uD83C\uDDE6",
+                     new String[] { "\u3031" });
+
+    // � 3031 � 0308 � 1F1E6 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\uD83C\uDDE6",
+                     new String[] { "\u3031\u0308" });
+
+    // � 3031 � 05D0 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u05D0",
+                     new String[] { "\u3031", "\u05D0" });
+
+    // � 3031 � 0308 � 05D0 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u05D0",
+                     new String[] { "\u3031\u0308", "\u05D0" });
+
+    // � 3031 � 0022 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\"",
+                     new String[] { "\u3031" });
+
+    // � 3031 � 0308 � 0022 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\"",
+                     new String[] { "\u3031\u0308" });
+
+    // � 3031 � 0027 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0027",
+                     new String[] { "\u3031" });
+
+    // � 3031 � 0308 � 0027 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0027",
+                     new String[] { "\u3031\u0308" });
+
+    // � 3031 � 00AD �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u00AD",
+                     new String[] { "\u3031\u00AD" });
+
+    // � 3031 � 0308 � 00AD �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [4.0] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u00AD",
+                     new String[] { "\u3031\u0308\u00AD" });
+
+    // � 3031 � 0300 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0300",
+                     new String[] { "\u3031\u0300" });
+
+    // � 3031 � 0308 � 0300 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [4.0] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0300",
+                     new String[] { "\u3031\u0308\u0300" });
+
+    // � 3031 � 0061 � 2060 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] LATIN SMALL LETTER A (ALetter) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0061\u2060",
+                     new String[] { "\u3031", "\u0061\u2060" });
+
+    // � 3031 � 0308 � 0061 � 2060 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0061\u2060",
+                     new String[] { "\u3031\u0308", "\u0061\u2060" });
+
+    // � 3031 � 0061 � 003A �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0061\u003A",
+                     new String[] { "\u3031", "\u0061" });
+
+    // � 3031 � 0308 � 0061 � 003A �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0061\u003A",
+                     new String[] { "\u3031\u0308", "\u0061" });
+
+    // � 3031 � 0061 � 0027 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0061\u0027",
+                     new String[] { "\u3031", "\u0061" });
+
+    // � 3031 � 0308 � 0061 � 0027 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0061\u0027",
+                     new String[] { "\u3031\u0308", "\u0061" });
+
+    // � 3031 � 0061 � 0027 � 2060 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0061\u0027\u2060",
+                     new String[] { "\u3031", "\u0061" });
+
+    // � 3031 � 0308 � 0061 � 0027 � 2060 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0061\u0027\u2060",
+                     new String[] { "\u3031\u0308", "\u0061" });
+
+    // � 3031 � 0061 � 002C �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0061\u002C",
+                     new String[] { "\u3031", "\u0061" });
+
+    // � 3031 � 0308 � 0061 � 002C �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN SMALL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0061\u002C",
+                     new String[] { "\u3031\u0308", "\u0061" });
+
+    // � 3031 � 0031 � 003A �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] DIGIT ONE (Numeric) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0031\u003A",
+                     new String[] { "\u3031", "\u0031" });
+
+    // � 3031 � 0308 � 0031 � 003A �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0031\u003A",
+                     new String[] { "\u3031\u0308", "\u0031" });
+
+    // � 3031 � 0031 � 0027 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] DIGIT ONE (Numeric) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0031\u0027",
+                     new String[] { "\u3031", "\u0031" });
+
+    // � 3031 � 0308 � 0031 � 0027 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0031\u0027",
+                     new String[] { "\u3031\u0308", "\u0031" });
+
+    // � 3031 � 0031 � 002C �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] DIGIT ONE (Numeric) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0031\u002C",
+                     new String[] { "\u3031", "\u0031" });
+
+    // � 3031 � 0308 � 0031 � 002C �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0031\u002C",
+                     new String[] { "\u3031\u0308", "\u0031" });
+
+    // � 3031 � 0031 � 002E � 2060 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [999.0] DIGIT ONE (Numeric) � [999.0] FULL STOP (MidNumLet) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0031\u002E\u2060",
+                     new String[] { "\u3031", "\u0031" });
+
+    // � 3031 � 0308 � 0031 � 002E � 2060 �  #  � [0.2] VERTICAL KANA REPEAT MARK (Katakana) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ONE (Numeric) � [999.0] FULL STOP (MidNumLet) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u3031\u0308\u0031\u002E\u2060",
+                     new String[] { "\u3031\u0308", "\u0031" });
+
+    // � 0041 � 0001 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [999.0] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0001",
+                     new String[] { "\u0041" });
+
+    // � 0041 � 0308 � 0001 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0001",
+                     new String[] { "\u0041\u0308" });
+
+    // � 0041 � 000D �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [3.2] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\r",
+                     new String[] { "\u0041" });
+
+    // � 0041 � 0308 � 000D �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [3.2] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\r",
+                     new String[] { "\u0041\u0308" });
+
+    // � 0041 � 000A �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [3.2] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\n",
+                     new String[] { "\u0041" });
+
+    // � 0041 � 0308 � 000A �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\n",
+                     new String[] { "\u0041\u0308" });
+
+    // � 0041 � 000B �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [3.2] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u000B",
+                     new String[] { "\u0041" });
+
+    // � 0041 � 0308 � 000B �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u000B",
+                     new String[] { "\u0041\u0308" });
+
+    // � 0041 � 3031 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [999.0] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u3031",
+                     new String[] { "\u0041", "\u3031" });
+
+    // � 0041 � 0308 � 3031 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u3031",
+                     new String[] { "\u0041\u0308", "\u3031" });
+
+    // � 0041 � 0041 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [5.0] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0041",
+                     new String[] { "\u0041\u0041" });
+
+    // � 0041 � 0308 � 0041 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [5.0] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0041",
+                     new String[] { "\u0041\u0308\u0041" });
+
+    // � 0041 � 003A �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u003A",
+                     new String[] { "\u0041" });
+
+    // � 0041 � 0308 � 003A �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u003A",
+                     new String[] { "\u0041\u0308" });
+
+    // � 0041 � 002C �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u002C",
+                     new String[] { "\u0041" });
+
+    // � 0041 � 0308 � 002C �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u002C",
+                     new String[] { "\u0041\u0308" });
+
+    // � 0041 � 002E �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [999.0] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u002E",
+                     new String[] { "\u0041" });
+
+    // � 0041 � 0308 � 002E �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u002E",
+                     new String[] { "\u0041\u0308" });
+
+    // � 0041 � 0030 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [9.0] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0030",
+                     new String[] { "\u0041\u0030" });
+
+    // � 0041 � 0308 � 0030 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [9.0] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0030",
+                     new String[] { "\u0041\u0308\u0030" });
+
+    // � 0041 � 005F �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [13.1] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u005F",
+                     new String[] { "\u0041\u005F" });
+
+    // � 0041 � 0308 � 005F �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [13.1] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u005F",
+                     new String[] { "\u0041\u0308\u005F" });
+
+    // � 0041 � 1F1E6 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\uD83C\uDDE6",
+                     new String[] { "\u0041" });
+
+    // � 0041 � 0308 � 1F1E6 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\uD83C\uDDE6",
+                     new String[] { "\u0041\u0308" });
+
+    // � 0041 � 05D0 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [5.0] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u05D0",
+                     new String[] { "\u0041\u05D0" });
+
+    // � 0041 � 0308 � 05D0 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [5.0] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u05D0",
+                     new String[] { "\u0041\u0308\u05D0" });
+
+    // � 0041 � 0022 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [999.0] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\"",
+                     new String[] { "\u0041" });
+
+    // � 0041 � 0308 � 0022 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\"",
+                     new String[] { "\u0041\u0308" });
+
+    // � 0041 � 0027 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0027",
+                     new String[] { "\u0041" });
+
+    // � 0041 � 0308 � 0027 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0027",
+                     new String[] { "\u0041\u0308" });
+
+    // � 0041 � 00AD �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u00AD",
+                     new String[] { "\u0041\u00AD" });
+
+    // � 0041 � 0308 � 00AD �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [4.0] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u00AD",
+                     new String[] { "\u0041\u0308\u00AD" });
+
+    // � 0041 � 0300 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0300",
+                     new String[] { "\u0041\u0300" });
+
+    // � 0041 � 0308 � 0300 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [4.0] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0300",
+                     new String[] { "\u0041\u0308\u0300" });
+
+    // � 0041 � 0061 � 2060 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [5.0] LATIN SMALL LETTER A (ALetter) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0061\u2060",
+                     new String[] { "\u0041\u0061\u2060" });
+
+    // � 0041 � 0308 � 0061 � 2060 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [5.0] LATIN SMALL LETTER A (ALetter) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0061\u2060",
+                     new String[] { "\u0041\u0308\u0061\u2060" });
+
+    // � 0041 � 0061 � 003A �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [5.0] LATIN SMALL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0061\u003A",
+                     new String[] { "\u0041\u0061" });
+
+    // � 0041 � 0308 � 0061 � 003A �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [5.0] LATIN SMALL LETTER A (ALetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0061\u003A",
+                     new String[] { "\u0041\u0308\u0061" });
+
+    // � 0041 � 0061 � 0027 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [5.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0061\u0027",
+                     new String[] { "\u0041\u0061" });
+
+    // � 0041 � 0308 � 0061 � 0027 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [5.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0061\u0027",
+                     new String[] { "\u0041\u0308\u0061" });
+
+    // � 0041 � 0061 � 0027 � 2060 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [5.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0061\u0027\u2060",
+                     new String[] { "\u0041\u0061" });
+
+    // � 0041 � 0308 � 0061 � 0027 � 2060 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [5.0] LATIN SMALL LETTER A (ALetter) � [999.0] APOSTROPHE (Single_Quote) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0061\u0027\u2060",
+                     new String[] { "\u0041\u0308\u0061" });
+
+    // � 0041 � 0061 � 002C �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [5.0] LATIN SMALL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0061\u002C",
+                     new String[] { "\u0041\u0061" });
+
+    // � 0041 � 0308 � 0061 � 002C �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [5.0] LATIN SMALL LETTER A (ALetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0061\u002C",
+                     new String[] { "\u0041\u0308\u0061" });
+
+    // � 0041 � 0031 � 003A �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [9.0] DIGIT ONE (Numeric) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0031\u003A",
+                     new String[] { "\u0041\u0031" });
+
+    // � 0041 � 0308 � 0031 � 003A �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [9.0] DIGIT ONE (Numeric) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0031\u003A",
+                     new String[] { "\u0041\u0308\u0031" });
+
+    // � 0041 � 0031 � 0027 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [9.0] DIGIT ONE (Numeric) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0031\u0027",
+                     new String[] { "\u0041\u0031" });
+
+    // � 0041 � 0308 � 0031 � 0027 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [9.0] DIGIT ONE (Numeric) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0031\u0027",
+                     new String[] { "\u0041\u0308\u0031" });
+
+    // � 0041 � 0031 � 002C �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [9.0] DIGIT ONE (Numeric) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0031\u002C",
+                     new String[] { "\u0041\u0031" });
+
+    // � 0041 � 0308 � 0031 � 002C �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [9.0] DIGIT ONE (Numeric) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0031\u002C",
+                     new String[] { "\u0041\u0308\u0031" });
+
+    // � 0041 � 0031 � 002E � 2060 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [9.0] DIGIT ONE (Numeric) � [999.0] FULL STOP (MidNumLet) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0031\u002E\u2060",
+                     new String[] { "\u0041\u0031" });
+
+    // � 0041 � 0308 � 0031 � 002E � 2060 �  #  � [0.2] LATIN CAPITAL LETTER A (ALetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [9.0] DIGIT ONE (Numeric) � [999.0] FULL STOP (MidNumLet) � [4.0] WORD JOINER (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u0041\u0308\u0031\u002E\u2060",
+                     new String[] { "\u0041\u0308\u0031" });
+
+    // � 003A � 0001 �  #  � [0.2] COLON (MidLetter) � [999.0] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0001",
+                     new String[] {  });
+
+    // � 003A � 0308 � 0001 �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] <START OF HEADING> (Other) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u0001",
+                     new String[] {  });
+
+    // � 003A � 000D �  #  � [0.2] COLON (MidLetter) � [3.2] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\r",
+                     new String[] {  });
+
+    // � 003A � 0308 � 000D �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [3.2] <CARRIAGE RETURN (CR)> (CR) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\r",
+                     new String[] {  });
+
+    // � 003A � 000A �  #  � [0.2] COLON (MidLetter) � [3.2] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\n",
+                     new String[] {  });
+
+    // � 003A � 0308 � 000A �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE FEED (LF)> (LF) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\n",
+                     new String[] {  });
+
+    // � 003A � 000B �  #  � [0.2] COLON (MidLetter) � [3.2] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u000B",
+                     new String[] {  });
+
+    // � 003A � 0308 � 000B �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [3.2] <LINE TABULATION> (Newline) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u000B",
+                     new String[] {  });
+
+    // � 003A � 3031 �  #  � [0.2] COLON (MidLetter) � [999.0] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u3031",
+                     new String[] { "\u3031" });
+
+    // � 003A � 0308 � 3031 �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] VERTICAL KANA REPEAT MARK (Katakana) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u3031",
+                     new String[] { "\u3031" });
+
+    // � 003A � 0041 �  #  � [0.2] COLON (MidLetter) � [999.0] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0041",
+                     new String[] { "\u0041" });
+
+    // � 003A � 0308 � 0041 �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LATIN CAPITAL LETTER A (ALetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u0041",
+                     new String[] { "\u0041" });
+
+    // � 003A � 003A �  #  � [0.2] COLON (MidLetter) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u003A",
+                     new String[] {  });
+
+    // � 003A � 0308 � 003A �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] COLON (MidLetter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u003A",
+                     new String[] {  });
+
+    // � 003A � 002C �  #  � [0.2] COLON (MidLetter) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u002C",
+                     new String[] {  });
+
+    // � 003A � 0308 � 002C �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] COMMA (MidNum) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u002C",
+                     new String[] {  });
+
+    // � 003A � 002E �  #  � [0.2] COLON (MidLetter) � [999.0] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u002E",
+                     new String[] {  });
+
+    // � 003A � 0308 � 002E �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] FULL STOP (MidNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u002E",
+                     new String[] {  });
+
+    // � 003A � 0030 �  #  � [0.2] COLON (MidLetter) � [999.0] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0030",
+                     new String[] { "\u0030" });
+
+    // � 003A � 0308 � 0030 �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] DIGIT ZERO (Numeric) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u0030",
+                     new String[] { "\u0030" });
+
+    // � 003A � 005F �  #  � [0.2] COLON (MidLetter) � [999.0] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u005F",
+                     new String[] {  });
+
+    // � 003A � 0308 � 005F �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] LOW LINE (ExtendNumLet) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u005F",
+                     new String[] {  });
+
+    // � 003A � 1F1E6 �  #  � [0.2] COLON (MidLetter) � [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\uD83C\uDDE6",
+                     new String[] {  });
+
+    // � 003A � 0308 � 1F1E6 �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\uD83C\uDDE6",
+                     new String[] {  });
+
+    // � 003A � 05D0 �  #  � [0.2] COLON (MidLetter) � [999.0] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u05D0",
+                     new String[] { "\u05D0" });
+
+    // � 003A � 0308 � 05D0 �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] HEBREW LETTER ALEF (Hebrew_Letter) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u05D0",
+                     new String[] { "\u05D0" });
+
+    // � 003A � 0022 �  #  � [0.2] COLON (MidLetter) � [999.0] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\"",
+                     new String[] {  });
+
+    // � 003A � 0308 � 0022 �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] QUOTATION MARK (Double_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\"",
+                     new String[] {  });
+
+    // � 003A � 0027 �  #  � [0.2] COLON (MidLetter) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0027",
+                     new String[] {  });
+
+    // � 003A � 0308 � 0027 �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [999.0] APOSTROPHE (Single_Quote) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u0027",
+                     new String[] {  });
+
+    // � 003A � 00AD �  #  � [0.2] COLON (MidLetter) � [4.0] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u00AD",
+                     new String[] {  });
+
+    // � 003A � 0308 � 00AD �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [4.0] SOFT HYPHEN (Format_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u00AD",
+                     new String[] {  });
+
+    // � 003A � 0300 �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0300",
+                     new String[] {  });
+
+    // � 003A � 0308 � 0300 �  #  � [0.2] COLON (MidLetter) � [4.0] COMBINING DIAERESIS (Extend_FE) � [4.0] COMBINING GRAVE ACCENT (Extend_FE) � [0.3]
+    assertAnalyzesTo(analyzer, "\u003A\u0308\u0300",
+                     new String[

<TRUNCATED>