Is it always FCP*, * being a numeric value ? Can you find a regex for what you want to extract ?
Keeping on the approach you started with, by replacing before and after by "" you can do
library(stringr)
#> Warning: le package 'stringr' a été compilé avec la version R 3.5.2
x="Book FCP1 is missing in BOOKS setup. Book may be new."
str_replace_all(x, "^Book | is .*", "")
#> [1] "FCP1"
gsub("^Book | is .*", "", x)
#> [1] "FCP1"
Created on 2019-03-10 by the reprex package (v0.2.1)