An essential problem for \in@ are patterns containing `{...}' (with usual 
catcodes). The present approach to find a substring <pattern> by defining a 
macro that has <pattern> in its parameter text is perfectly unable to deal 
with this. At least one of stringstrings, ted, xstring *is* able to do this 
because of a very different imlementation -- analyzing tokens one by one 
and creating an "internal representation" of the <pattern>. But this is a 
heavy machinerybthat should *not* be in the LaTeX kernel -- cf.:

>Date: Wed, 29 Apr 2009 22:07:23 +0200
>From: Uwe Lück <[log in to unmask]>
>At 13:23 27.04.09, Manuel Pégourié-Gonnard wrote:
>>Heiko Oberdiek a écrit :
[solutions dealing with unbalanced \if... and #]
>>Anyway, depending on the intended use of \in@, certain resctrictions (such as
>>"no unbalanced \if" or "no # token" or "no \@nil token" are probably 
>>acceptable,
>>as long as they are properly documented.
>When I countered "unbalanced \if..." by "#", this rather meant the same.
[...]
>The LaTeX kernel should just provide essential things.
>A perfect bombastic substring detector is not essential.

Cheers,

     Uwe.