このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1268979408/596
#  【】で囲まれた任意の同一文字列(文字数可変)が2回続いた場合にマッチする正規表現をお願いします 
#   
#  【AAA】【AAA】はマッチ 
#  【AAA】【BBB】はマッチしない 
#   
#  という感じです 
# 
# 

'【】で囲まれた任意の同一文字列(文字数可変)が2回続いた場合にマッチする'(_対象文字列,_照合部分より前の文字列,_照合部分文字列,_残り文字列) :-
        atom_chars(_対象文字列,Chars),
        照合基本部分(L,L0,L1,L2),
        '【】で囲まれた任意の同一文字列(文字数可変)が2回続いた'(L1,L2,_2回続いた文字ならび,R),
        文字ならびを文字列に変換(L0,_2回続いた文字ならび,R,_照合部分より前の文字列,_照合部分文字列,_残り文字列).

照合基本部分(L,L0,L1,L2) :-
        append(L0,['【'|L10],['】'|L2],L),
        all(L10,A),
        append(['【'|L10],['】'],L1).

'【】で囲まれた任意の同一文字列(文字数可変)が2回続いた'(L1,L2,_2回続いた文字ならび,R) :-
        append(L1,R,L2),
        append(L1,L1,_2回続いた文字ならび).

文字ならびを文字列に変換(L0,_2回続いた文字ならび,R,_照合部分より前の文字列,_照合部分文字列,_残り文字列) :-
        atom_chars(_照合部分より前の文字列,L0),
        atom_chars(_照合部分文字列,_2回続いた文字ならび),
        atom_chars(_残り文字列,R).