Fragmentary Pattern Matching: Complexity, Algorithms and Applications for Analyzing Classic Literary Works