How does one find a word with a rhyming middle syllable?
Solution 1:
Here are a few ways you can find it, depending on what you want.
Your two examples are words where the "OR" sound occurs as the primary stressed vowel sound of the word. I'm not sure if that's important to you or not. For example, abHOR and abNORmal have the "OR" sound where the word has primary stress. Acorn, AIRforce, and deporTEE do not.
Here are a few approaches you can take to find words that contain the "or" sound.
Approach A: Search for the phonetic pattern in Ben Briedis' Phonetic Word Search
Navigate to http://www.benbriedis.com/phonetic/search.php and search for the phonetic pattern you want to find.
If you DO care about stress, search for:
.+ AO1 R .+
If you DO NOT care about stress, search for:
.+ AO R .+
The ".+" part of the pattern matches any 1 or more phonemes. This helps ensure that the "OR" is sandwiched between other phonemes, and doesn't only appear at the front or end of the word. If you want to match any occurrence, use ".*" instead of ".+".
This is a great tool if you want to search phonetic patterns ad-hoc.
Approach B: Search for the word in Dillfrog Muse
(Full disclosure: I'm the author of this tool)
Use the Dillfrog Muse "Contains (sound)" search to finds words that contain the phonemes of "or", ignoring stress.
This does not eliminate words that start or end with "or" though.
Approach C: Search Raw Pronunciation Data using the CMU Pronouncing Dictionary
The most flexible option, but also the most bare-metal.
If you're feeling a bit hardcore with a text editor, download the latest CMU Pronouncing Dictionary file. (Sorry, I'd link it, but I don't have enough reputation to post more than 2 links.) At the time of writing, you want to download the file named "cmudict-0.7b". Search that text using your favorite tool that has regex support (such as Notepad++ or egrep). This file lists the pronunciations of words, 1 word per line.
Using the ARPABET, "or"'s pronunciation looks like "AO1 R". So you can search for any other lines that contain "AO1 R" and you'll see words that have the "or" sound where that vowel sound has the primary stress.
If you don't care about stress, use a regex to match any number instead of the 1. For example, search for a regex of:
AO[0-9] R
Again, this does not eliminate words that start or end with "or" though.
Solution 2:
I don't know of a specific source for exactly what you are asking for, But:
With the Regex dictionary you can search for arbitrary regular expressions in words.
You can enter the following regex to find words that contain the letters or in the middle.
..*or.*[bcdfghjklmnpqrstvwxyz].*
The expression I used requires that a consonant appear following the or thus eliminating words that end in or. It finds 3238 words.
Enter it in the String field.
The first of the "A" words includes: abnormal abnormality aboral aboriginal aborigine abort abortifacient abortion abortionist abortive absorb absorbefacient absorptance absorption accessorise accessorize accessory accord accordance accordant accordingly accordion achlorhydria achlorophyllous acorn actinomorphic...
Have fun.
Solution 3:
Take a look at Rhyme Genie. It's the largest rhyming dictionary of its kind and can find reverse rhymes and first syllable rhymes. You might also find suitable words under broken rhymes.