このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1323566370/458
#  ●正規表現の使用環境 
#  wxWidets (wxRegEx) 
#   
#  ●検索か置換か? 
#  検索 
#   
#  ●説明 
#  一行の中に丸括弧で閉じられた文字列を検索したい。 
#  丸括弧が出てくる位置や数は不定です 
#   
#  ●対象データ 
#  (2012年2月)北海道で撮影。(raw)で保存。猫と一緒(雄) 
#   
#  ●希望する結果 
#  (2012年2月) (raw) (雄) 
#   
#  (\\(.*?\\))で検索すると、"(2012年2月)"だけ検索されます。 
#  (\\(.*?\\))(?:.*)(\\(.*?\\))(?:.*)(\\(.*?\\))で検索すると(2012年2月)(raw)(雄)が検索されます。 
#  ただ括弧の位置が変わった場合には、この正規表現では検索にかからなくなります。 
#   
#  サクラテキストエディタ等の正規表現で検索すると、(\\(.*?\\)) 文章内にいくつ括弧文字列があっても 
#  すべて検索されています。 
#   
#  正規表現でどのように書けばいいのか、それとも、プログラム上で検索しているのかわかりません。 
#  どのように実現しているかまったくわかりません。 
#   
#  考え方などをおしえてくださいませ。 
# 
# 

'一行の中に丸括弧で閉じられた文字列を検索したい。丸括弧が出てくる位置や数は不定です'(_文字列,_前文字列,_適合文字列,_後文字列) :-
        sub_atom(_文字列,_,_,_,S1,S2,S3,L1,L2,L3),
        丸括弧に挟まれた文字列(L2,_適合文字列),
        concat_atom([S1,'('],_前文字列),
        concat_atom([')',S3],_後文字列).

丸括弧に挟まれた文字列(L2,_適合文字列) :-
        append(['('],L2_1,[')'],L2),
        \+(member('(',L2_1)),
        \+(member(')',L2_1)),
        atom_chars(_適合文字列,L2_1).