Cut a word between two strings and repeat the same in the entire file

in the below data i need to search for the word typeMismatch and then traverse back to find the filename of that particular mismatch. Like this we have to get all the file names which has error in them. How can i acheive this.
I tried use sed or awk but not able to achevie the same.

Sample file.

abcdedfgh
iekigi2
kjekjijj Parsing error at line: 3 in resource=[URL [file:/home/test/TestFile_071618.txt]]
kjlkji
aio983jlk
kjalskdfj2 rejected value [testing]; codes [typeMismatch.target.processStartDtm]
abcdedfgh
iekigi2
kjekjijj Parsing error at line: 3 in resource=[URL [file:/home/test/TestFile1_071618.txt]]
kjlkji
aio983jlk
kjalskdfj2 rejected value [testing]; codes [typeMismatch.target.processStartDtm]

Need the output as:

/home/test/TestFile_071618.txt
/home/test/TestFile1_071618.txt

since there are 2 occurrence of typemismatch in the data..

How about

awk 'match($0, /\[file:.*$/) {FN = substr ($0, RSTART+6, RLENGTH-8)} /typeMismatch/ {print FN; FN = ""}' file
/home/test/TestFile_071618.txt
/home/test/TestFile1_071618.txt

or (given sample input/output):

awk -F'[]:]' 'NF>3{print $(NF-2)}' myFile
/home/test/TestFile_071618.txt
/home/test/TestFile1_071618.txt