Currently, loops like a* or \d* go through the whole NFA state transition processing for each repetition, which slows down the handling of such loops a lot.
I think it's probably worth it to recognize and special-case such simple and comonly used loop structures in the matcher. (But we should not add such special-case handling to non-simple loops and instead resolve #5957 to effectively extend the simple loop handling to branchless loops.)