It's not just about getting the protocol stack right, but also the ancillary software environment; people keep asking me for "V3 support in EOTK" and my stock response is this:
==== BEGIN ====
OnionBalance requires STEM support for V3, before it can be updated (possibly a substantial rewrite will be needed) to support the new format onions. It's not only a matter of "longer addresses" but also a matter of cross-signing the descriptors to support new-style cryptography, so in fact it might be safest to create a new, separate OnionBalance for V3.
So: STEM needs updating and testing for V3, and then OnionBalance needs to support the new STEM library and encryption. Then (for me) EOTK needs to support the new OnionBalance.
I am not expecting a solution to ship until 2019, earliest.
==== END ====
...and that's even without refactoring the other bits of EOTK to address the changes when STEMv3 lands.
OTOH, I have been performance testing simultaneous regular-_expression_ matching of v2/3 addresses, and so far this is the winner:
"\\b([a-z2-7]{16}(?:[a-z2-7]{40})?\\.onion)\\b"