If you use a general grep you can done it in this way
echo "stringsMystring1string2strings" | grep -Eo 'strings?' | grep -Eo '^string$'
The idea is you just list all strings by using both pattern string and strings first, by 
command: 
`grep -Eo 'strings?'`
results:
strings
string
string
strings
The grep the result again by
command: 
grep -Eo '^string$'
result:
string
string
And according to regex-lookahead-for-not-followed-by-in-grep, some people suggest to use GNU grep where you can use an option -P or --perl-regexp to enable lookaround feature. A given regex might take form like this
echo "stringsMystring1string2strings" | grep -P 'string(?!s)'