Attach (recommended) or Link to PDF file here:
https://www.meti.go.jp/policy/consumer/seian/denan/file/04_cn/scope/haninokaishaku_211228.pdf

Configuration:
- Web browser and its version: Google Chrome 107.0.5304.121
- Operating system and its version: Windows 10 Pro 21H2 19044.1826
- PDF.js version: v3.0.279
- Is a browser extension: No

Steps to reproduce the problem:
1. Search "ソレノイド" by Ctrl+F.

What went wrong? (add screenshot)
"ソレノイド" on page 10 must be hit.
If search "ソ レノイド" (add space between ソ and レ), it hits.

![image](https://user-images.githubusercontent.com/110510565/204415638-450c0b28-ce1e-4542-8f4d-7b67fe881f6d.png)

Steps to reproduce the problem:
1. Search "ミシン用として用いられる" by Ctrl+F.

What went wrong? (add screenshot)
"ミシン用として用いられる" on page 5 must be hit.
If search "ミシン用として用いられ る" (add space between れ and る), it hits.

![image](https://user-images.githubusercontent.com/110510565/204416640-824b8f3f-9b7b-4ba5-856c-858d8d451689.png)

When this PDF file is opened by Adobe Reader, there is no problem.

Related issue:
[#15340](https://github.com/mozilla/pdf.js/issues/15340)






.push([i - shift + 1, shift]);
        shiftOrigin += 1;
        eol += 1;
        return p5.charAt(0);
      }
      if (p6) {
        
        
        positions.push([i - shift + 1, shift - 1]);
        shift -= 1;
        shiftOrigin += 1;
        eol += 1;
        return " ";
      }
      
      if (i + eol === syllablePositions[syllableIndex]?.[1]) {
        
        
        const newCharLen = syllablePositions[syllableIndex][0] - 1;
        ++syllableIndex;
        for (let j = 1; j <= newCharLen; j++) {
          positions.push([i - (shift - j), shift - j]);
        }
        shift -= newCharLen;
        shiftOrigin += newCharLen;
      }
      return p7;
    }
  );
  positions.push([normalized.length, shift]);
  return [normalized, positions, hasDiacritics];
}
function getOriginalIndex(diffs, pos, len) {
  if (!diffs) {
    return [pos, len];
  }
  const start = pos;
  const end = pos + len;
  let i = binarySearchFirstItem(diffs, x => x[0] >= start);
  if (diffs[i][0] > start) {
    --i;
  }
  let j = binarySearchFirstItem(diffs, x => x[0] >= end, i);
  if (diffs[j][0] > end) {
    --j;
  }
  return [start + diffs[i][1], len + diffs[j][1] - diffs[i][1]];
}
**
 * @typedef {Object} PDFFindControllerOptions
 * @property {IPDFLinkService} linkService - The navigationlinking service.
 * @property {EventBus} eventBus - The application event bus.
 *
**
 * Provides search functionality to find a given string in a PDF document.
 *
class PDFFindController {
  **
   * @param {PDFFindControllerOptions} options
   *
  constructor({ linkService, eventBus }) {
    this._linkService = linkService;
    this._eventBus = eventBus;
    this.#reset();
    eventBus._on("find", this.#onFind.bind(this));
    eventBus._on("findbarclose", this.#onFindBarClose.bind(this));
  }
  get highlightMatches() {
    return this._highlightMatches;
  }
  get pageMatches() {
    return this._pageMatches;
  }
  get pageMatchesLength() {
    return this._pageMatchesLength;
  }
  get selected() {