It all depends how the title is represented.
Atom
If it is represented as an atom, you need sub_atom(Atom, Before, Length, After, Sub_atom)
?- Title = 'The Third Man', sub_atom(Title, 0, _, _, 'The').
Title = 'The Third Man'.
List of codes
If it is a list of codes which is called a string in Prologs in Edinburgh tradition, you can either "hard code" it with append/3
or you might use Definite Clause Grammars for general patterns.
?- set_prolog_flag(double_quotes,codes).
true.
?- append("The",_, Pattern), Title = "The Third Man", Pattern = Title.
Pattern = Title, Title = [84,104,101,32,84,104,105,114,100|...].
?- Title = "The Third Man", phrase(("The",...), Title).
Title = [84,104,101,32,84,104,105,114,100|...]
; false.
Note that 84 is the character code of T etc.
phrase/2
is "the entry" to grammars. See dcg for more. Above used the following definition:
... --> [] | [_], ... .
List of characters
Similar to list of codes, list of characters provide a more readable representation that has still the advantages of being compatible with list predicates and Definite Clause Grammars:
?- set_prolog_flag(double_quotes,chars).
true.
?- append("The",_, Pattern), Title = "The Third Man", Pattern = Title.
Pattern = Title, Title = ['T',h,e,' ','T',h,i,r,d|...].
?- Title = "The Third Man", phrase(("The",...), Title).
Title = ['T',h,e,' ','T',h,i,r,d|...]
; false.
See also this answer.