Since OP clearly mentioned json parsers can't be used so answering in GNU grep here. Written and tested in GNU grep with shown samples only. Also experts always advice to use json parser so if you have any go for it.
echo "$Response" | grep -ozP '(^|\n){\n"count":\s+[0-9]+,\n"items":\s+\[{\n\s+"oid":\s+"\K[^"]*'
Output will be as follows: xyzxyzxyzxyzxyzxyzxyz
Explanation of regex: Adding detailed explanation of used above regex and its only for explanation purposes, for using please refer above GNU grep command.
(^|\n){\n ##Matching new line OR starting here followed by { and new line.
"count":\s+ ##Matching "count": followed by 1 or more spaces.
[0-9]+,\n ##Matching 1 or more digits followed by comma followed by new line.
"items":\s+ ##Matching "items": followed by 1 or more spaces.
\[{\n\s+ ##matching literal [ followed by { new line and spaces.
"oid":\s+" ##Matching "oid": followed by 1 or more spaces followed by " here.
\K ##Here is GNU grep's GREAT option \K which helps us to forget previous match.
##Basically match everything but forget its value so that we can get only required values.
[^"]* ##Match everything just before next occurrence of " here.
[^"]+instead of a single character$Responseisn't a command recognized by bash. and then there's no "oid" string in the error message about "command not found", so your variable is empty. Something likeoid=$(echo $Response | grep ...)