Command substitution, which means using the result of a command for something in-line, is done with $( ... ).
In your case,
core_out=$( find coretst.* )
However, this will prompt find to look in all paths that starts with anything that coretst.* expands to. What I assume you want to do is to look in the current directory or below for files that matches the pattern coretst.*. You would do that with
core_out=$( find . -type f -name 'coretst.*' )
Quoting the coretst.* pattern stops the shell from expanding it to names in the current directory.
Then, it's a question what you would like to do with the pathnames that are returned by this. If you just want to print them, then there is no need for the variable at all:
find . -type f -name 'coretst.*'
If you would like to remove these files, then you should do so from find:
find . -type f -name 'coretst.*' -exec rm {} +
Any other operation on the files can also be performed from within find.
See the question "https://unix.stackexchange.com/questions/321697/why-is-looping-over-finds-output-bad-practice" for reasons why using the paths that find returns may be a bad habit (the answers are about looping over the result of find, which is what I presume you might want to be doing later).
From comments:
I want to search it in a current folder, and the output on this will be used on a substring and consequently will be used on this:
strings ($core_out) | grep "pmdtm("
If I understand this correctly, this could be done with
find . -type f -name 'coretst.*' -exec strings {} + | grep -F 'pmdtm('
I.e., run strings on all found files and find the lines that contains the string pmdtm(.
If you want to know what file the match was found in:
find . -type f -name 'coretst.*' -exec sh -c '
for name; do
if strings "$name" | grep -qF "pmdtm("; then
printf "%s\n" "$name"
fi
done' find-sh {} +