docs: public String spacingText(String text) {
          // CJK and quotes
          Matcher cqMatcher = CJK_QUOTE.matcher(text);
          text = cqMatcher.replaceAll("$1 $2");
  
          Matcher qcMatcher = QUOTE_CJK.matcher(text);
          text = qcMatcher.replaceAll("$1 $2");
  
          Matcher fixQuoteMatcher = FIX_QUOTE.matcher(text);
          text = fixQuoteMatcher.replaceAll("$1$3$5");
  
          // CJK and brackets
          String oldText = text;
          Matcher cbcMatcher = CJK_BRACKET_CJK.matcher(text);
          String newText = cbcMatcher.replaceAll("$1 $2 $4");
          text = newText;
  
          if (oldText.equals(newText)) {
              Matcher cbMatcher = CJK_BRACKET.matcher(text);
              text = cbMatcher.replaceAll("$1 $2");
  
              Matcher bcMatcher = BRACKET_CJK.matcher(text);
              text = bcMatcher.replaceAll("$1 $2");
          }
  
          Matcher fixBracketMatcher = FIX_BRACKET.matcher(text);
          text = fixBracketMatcher.replaceAll("$1$3$5");
  
          // CJK and hash
          Matcher chMatcher = CJK_HASH.matcher(text);
          text = chMatcher.replaceAll("$1 $2");
  
          Matcher hcMatcher = HASH_CJK.matcher(text);
          text = hcMatcher.replaceAll("$1 $3");
  
          // CJK and ANS
          Matcher caMatcher = CJK_ANS.matcher(text);
          text = caMatcher.replaceAll("$1 $2");
  
          Matcher acMatcher = ANS_CJK.matcher(text);
          text = acMatcher.replaceAll("$1 $2");
  
          return text;
      }