in reply to recognizing URL text
A single word makes too small a sample, but for larger runs of text the frequency of coincident characters is a guide. I think Kahn's popular book on crypto describes the algorithm and its uses. It can detect key length for multiple cyphers, and can often identify the language of the plaintext.
Your character frequency and vowel placement ideas seem good to me. They may also be suffering from small sample size.
As it is, you might try tr// of 1337 digits for words matching /\d/, minimum Text::Levenshtein distance from words in a wordlist, and inclusion (through index or m//i) of words in the wordlist. Those will be time-consuming, but I don't see a way around that.
Added: To recognise language-like nonwords, you could check that all adjacent pairs of characters are high-probability ones in the language.
After Compline,
Zaxo
|
|---|