Expression régulière RegExp rechercher & remplacer les mots entiers seulement

Je devrais commencer en disant que je suis en train de travailler avec VB6 & RegExp

Je suis d'essayer de trouver et remplacer des mots entiers, par "mots entiers", je veux dire d'une correspondance valide n'est pas une sous-chaîne d'un autre mot, bien que certains caractères spéciaux sera ok. Je suis un novice à des expressions régulières. C'est ce que j'ai essayé:

([^a-z]+)(Foo)([^a-z]+)

Il semble proche, mais je vais avoir quelques difficultés dans certaines situations.

Par exemple, si je trouve la chaîne

Foo Foo

ou

Foo(Foo)

ou n'importe où d'une ligne se termine par " Foo " et la ligne suivante commence par Foo

This is a line with Foo
Foo starts the next line

Dans aucun de ces cas, seul le premier Foo est mis en correspondance.

Bien, peut-être qu'il n'est pas un problème avec le match, mais plutôt mon remplacement de la méthode. Je ne sais pas exactement comment je peux vérifier que. Je suis à l'aide de groupes de remplacer quelle que soit la délimitation char est compensée par l'expression, comme suit:

regEX.Replace(source, "$1" & newstring & "$3")

Donc en résumé je veux éviter de correspondance:
FooBar
BarFoo

Tout de ce qui suit est valable matches:

Foo Foo
Foo Bar
Foo_bar
Foo.bar
Foo, bar
Foo(bar)
Foo(Foo)

Si quelqu'un peut bien vouloir me montrer la bonne façon de le faire que j'aimerais beaucoup l'apprécier!

édité

Semble que j'ai parlé un peu trop vite ce qui concerne la première solution ci-dessous. Après un peu d'essais, et quelques autres lectures, je vois que le trait de soulignement est un mot char et donc le schéma ci-dessus ne correspond pas. Je suis venu avec ce qui fait le truc, est-il un meilleur moyen?

(\b)(Foo)(\b|_)

regEX.Replace(source, "$1" & newstring & "$3")

Il fonctionne, mais semble un peu bâclé.

OriginalL'auteur Jacob D | 2012-07-28