let g:neocomplcache_keyword_patterns.ruby = '^=\%(b\%[egin]\|e\%[nd]\)\|\%(@@\|[:$@]\)\h\w*\|\h\w*\%(::\w*\)*[!?]\?\%(()\?\|\s\?\%(do\|{\)\s\?\)\?'
neocomplcache_keyword_patterns_ruby = /(?:b(?:egin)|e(?:nd))|(?:@@|[:$@])[a-zA-Z_]\w*|[a-zA-Z_]\w*(?:::\w*)*[!?]?(?:\(\)?|\s?(?:do|{)\s?)?/
PCREで書くとこんなかんじなんでしょうか。