I don't have a better answer for you - perhaps someone else does.
 
But I think that what I described: a key that deletes the mismatched portion, might actually solve your problem of searching within a keyboard macro. When defining the macro, you could presumably just hit that key when typing the search string is "done".  If there is no mismatched portion for a given search, then the key would do nothing.
 
However, the interactive part of using your macro wrt searching is not really clear to me. So maybe I'm missing something.
 
Anyway, such a key does not exist yet, but if I get some time I'll try to come up with it. Or perhaps someone else (you?) will beat me to it.  Look in isearch.el for the part of the code that identifies the mismatched portion for highlighting, or the part of `isearch-edit-string' that moves the cursor to the mismatch beginning.
 
HTH.

Drew, thanks for the answer. Unfortunately I need a different behavior in my particular case. I was proposed with similar work-around also on stack overflow. Though, I'm often using incremental search for query specific tags in a large text file which is used like database system with help of some configuration and scripts. Before each incremental search there is a macro which places me to BOF and afterwards starts incremental search. For this scheme it would be very convenient just not to append mismatched part at all. I understand that it's not that standard feature and I use different approach when let's say coding or typing text but again for this particular case I need the mentioned behavior. It will save me some additional clicks to backspace and/or c-s  c-g. In other words: I'm  looking for a way of not showing mismatched characters during incremental search. Thanks a lot for your time.

On Thu, Dec 13, 2012 at 2:14 AM, Drew Adams <drew.adams@oracle.com> wrote:
> How can I [get] this behaviour:
>  Start incremental search and search for "keyz"
>  "key" is displayed in the search echo area and the "key"
>  part in "keywords" is higlighted
>  Press s
>  "keys" is found and highlited

I don't have an answer for you, but the suggestion is an interesting one.

A variant that could be useful (which I also don't have a recipe for):

Type `keyz'.
The `z' is highlighted as a mismatch (this is already available).
Hit a key to delete the mismatched part (in this case, just `z'.
Type `s' and continue.

When I introduced highlighting of the mismatch part, I took it from Icicles
highlighting of completion input mismatch.  There, you can hit `C-l' twice to
remove the mismatched part.  (The first `C-l' just moves the cursor to the
mismatch beginning, so you can insert there.)

In Isearch there is no equivalent - no key that removes the mismatched part.
Maybe I'll add that possibility.  What you can do is hit `M-e', which puts you
in editing mode and moves the cursor to the mismatch beginning.  Then hit `C-k'
to kill the mismatch portion, then `C-s' to resume searching.  So `M-e C-k C-s'.