Red, 89 bytes
func[s t n][reverse t either parse r: reverse copy s[n to remove t to end][reverse r][s]]
Working on a reversed copy of the string, I use parse
to remove n
times the reversed substring. If parse
succeeds, I return the modified string reversed, otherwise - the original string.