public int matches(CharacterIterator text_, int maxLength, int[] lengths, int[] count_, int limit, int[] values) {
UCharacterIterator text = UCharacterIterator.getInstance(text_);
BytesTrie bt = new BytesTrie(characters, 0);
int c = text.nextCodePoint();
Result result = bt.first(transform(c));
// TODO: should numChars count Character.charCount() ?
int numChars = 1;
int count = 0;
for (;;) {
if (result.hasValue()) {