You are on the right track with the help of an operator search. It is designed to search and match text strings. Here is a brief description of the statement searchfound in the PostScript Language Reference :
search string seek search post match pre true (if found)
string false (if not found)
looks for the first occurrence of the string seek within string and
returns results of this search on the operand stack. The topmost
result is a boolean that indicates if the search succeeded.
If search finds a subsequence of string whose elements are equal
to the elements of seek, it splits string into three segments:
pre, the portion of string preceding the match; match, the portion
of string that matches seek; and post, the remainder of string. It
then pushes the string objects post, match, and pre on the operand
stack, followed by the boolean true. All three of these strings are
substrings sharing intervals of the value of the original string.
If search does not find a match, it pushes the original string
and the boolean false.
Example:
(abbc) (ab) search ==> (bc) (ab) ( ) true
(abbc) (bb) search ==> (c) (bb) (a) true
(abbc) (bc) search ==> () (bc) (ab) true
(abbc) (B) search ==> (abbc) false