May the first be with you

JavaScript (ES6), 93 88 bytes

f=
s=>s.replace(/force|first/gi,s=>s.replace(/./g,c=>s[s.search(c)^1]||c,s="oicsetOICSET"))
<textarea oninput=o.textContent=f(this.value)></textarea><pre id=o>

Edit: Saved 5 bytes by optimising the unchanged letter case.


Retina, 33 bytes

iT`\OC\E\ocetsiTSI`Ro`first|force

Try it online!

Edit: Saved 5 bytes thanks to @MartinEnder for pointing out what Ro does.


APL (Dyalog), 61 bytes

Requires ⎕IO←0 which is default on many systems. Can be four characters shorter using the Unicode symbol instead of ⎕OPT .

(t←'force' 'first')⎕R{(m∊⎕A)c¨t⊃⍨~t⍳(c←819⌶)⊂m←⍵.Match}⎕OPT 1

Try it online!