You can define your own temporary syntax table. Just start with a newly created character table with default nil entries and modify only those syntax entries you need.
The following Elisp function demonstrates that.
It creates a temporary syntax table with the syntax you want and sends you into recursive edit.
You can then interactively try commands like ...
I took your code as base and rewrote it somewhat.
The following function is one possible solution to solve that problem in one function:
(defun my-search-results (pattern)
(interactive (list (read-regexp "Regex Pattern to Search for: ")))
(let ((result-buffer (generate-new-buffer "*Search Results*"))
Oh duh, I guess I was trying to make things too complicated. This ended up working:
(org-entry-get (point) "FEATURE_NUM" 'inherit)))
Since I'm using the org-entry-get function I don't need the property predicate.