Delimiter captures and empty parts are deliberate output choices
Regular-expression splitting differs from matching: delimiters are removed, but capturing groups inside the delimiter are inserted into the result by JavaScript. Leading, trailing, or adjacent delimiters can also create empty parts.
The omit-empty setting is applied after JavaScript split semantics, so captured delimiter values remain visible unless they are empty. The worker requests at most 10,001 parts to detect truncation and returns at most 10,000.