@NoTime - it might, but that is a locale specific range - A-Z and a-z depend on the C locale's sort order by ASCII byte value - if you start working with locales in which that is not true, [[:lower:]] and [[:upper:]] are the robust classes - so you might as well just do it robustly from the start.
I honestly started with those from the start, but was unable to get past repeating characters without having to redirect the output into a file, then append with a different regex.
I dabble. This all came of a hobby - but I just really liked to learn. I've got pretty good at the shell/admin stuff. And some C, but I've done nothing worthwhile. I don't know how to start.