1 of 3

R, 30 bytes

(n=scan(,''))[-c(1,length(n))]

Takes input from stdin, returns each middle name as a separate string. Returns character() in the case of no middle name; that is, a vector of class character of length 0.