とすることで、「A」と「B」に相当する部分の入れ替えができます。
検索文字列: (.+)さんは(.+)さんの友達です 置換文字列: \2さんは\1さんの友達です
[a-z]+([0-9]+)のように指定します。そして、タグとしては、\1というのが数字の部分に相当することになります。または、
([a-z]+)([0-9]+)のようなパターンを指定した場合は、英字の部分が\1になり、数字の部分が\2となります。
(aaa|(bbb|ccc))と指定した場合には、それ全体が\1に相当し、\2、\3に該当する物は存在しないことになります。
\<([a-z])((?!\1)[a-z])\2\>と指定すると、"see"や"all"のような、1文字目と2文字目は一致しないけども2文字目と3文字目が一致する3文字の単語を検索することが出来ます。
【 補足 】
前方一致/不一致、後方一致/不一致指定についてはタグ付き正規表現でのカッコの対象外となります。例えば、"(abc)(?!xyz)(jre)"というパターンを指定した場合での"\2"に該当する部分は(jre)部分となります。
一般的正規表現のタグを使っている場合で、"\0"を記述すると検索文字列全体を指すことになってしまいますが、これは"\f"区切りを使った場合との互換で"\0"が使えてしまいます。一般的正規表現のタグを使う場合は"\0"は使わないように注意してください。