Oh my. Do use pgrep. It's much more robust (what do you do if you have to search for a process named "0:0"?), and you don't have to use pipelines and strange regex tricks (which will fail to work on zsh with "set nomatch" if you don't quote, for example).
grep treats "[m]yapp" as a regex, which will match "myapp" but not itself. That is, it won't match the exact string "[m]yapp" so the grep process won't show up in the listing.
after: $ ps ax | grep [m]yapp | {...}