

       bregonig.dll Ver.1.45   Copyright (C) 2006-2009  K.Takata


１．概要
    　Tatsuo Baba氏による正規表現ライブラリである Bregexp.dll (*1) 互換
    の正規表現ライブラリです。Windows アプリで Perl 互換の正規表現が使え
    るようになります。
    　正規表現エンジンとして鬼車 (Oniguruma) (*2) を採用することにより、
    オリジナルの Bregexp.dll よりも高度な正規表現を使用できるようになっ
    ています。具体的には、戻り読み (look-behind)《(?<=式), (?<!式)》、式
    オプション《(?imsx-imsx:式)》、POSIX ブラケット《[:ascii:]》、文字プ
    ロパティ《\p{Ascii}》、名前付き捕獲式集合と名前指定後方参照《(?<name>
    式), \k<name>》などが新たに使えるようになります。

    　K2Editor で使われている K2Regexp.dll (*3) と、サクラエディタで使わ
    れている Bregexp.dll for SAKURA (*4) にも対応しています。K2Editor や
    サクラエディタなどで、この bregonig.dll を使うことで、検索機能や置換
    機能が大幅に強化されます。

    (*1) http://www.hi-ho.ne.jp/babaq/bregexp.html
    (*2) http://www.geocities.jp/kosako3/oniguruma/index_ja.html
    (*3) http://k2top.jpn.org/index.php?K2Editor
    (*4) http://sourceforge.net/project/showfiles.php?group_id=12488



２．動作環境
    ・Windows 98/2000/XP/Vista
     （Windows 95/ME/NT4 は動作未確認）
    ・bregonig.dll または Bregexp.dll に対応したアプリケーション
      作者が動作を確認したアプリケーションは以下の通りです。
      ただし、動作を保証するものではありません。
        ・K2Editor r.1.5.7 Build 519 (k2regexp.dll)
        ・JmEditor2 Version 2.0.25
        ・サクラエディタ Ver. 1.6.4.0
        ・Spam Mail Killer Ver.2.28
        ・INCM version 1.23c
        ・ttPage-R Ver.0.98r28
        ・秀丸エディタ Ver7.00 + BRegIf.DLL v0,0,2,2
        ・Speeeeed Ver1.43


３．インストール
    　bregonig.dll の名前を bregexp.dll に変更し、それを Bregexp.dll を
    使用するアプリケーションと同じフォルダに置いてください。（ただし、ア
    プリケーションによってはインストール方法が異なる場合もありますので、
    詳細はそれぞれのマニュアルでご確認ください。）
    　K2Editor の場合は、同梱の k2regexp.dll を K2Editor.exe のあるフォ
    ルダにコピーしてください。（K2Regexp.dll は Bregexp.dll を元に作られ
    ているものの、オリジナルの Bregexp.dll とは互換性が無いため、別ファ
    イルになっています。）

    （いずれの場合も、元々のファイルはバックアップしておき、何か問題があ
    ればすぐに戻せるようにしておくことをお薦めします。）


４．使用可能な正規表現
    　オリジナルの Bregexp.dll や、Bregexp.dll for SAKURA と同様に、次に
    示す形式でパターンを与えます。

    ・BMatch(), BMatchEx(), BSplit()
        /pattern1/options
        m/pattern1/options

    ・BSubst(), BSubstEx()
        s/pattern1/pattern2/options

    ・BTrans()
        tr/pattern3/pattern4/options

    　Bregexp.dll や Perl と同様に、m//, s///, tr/// の形式の場合には、
    パターンの区切り文字には '/' 以外のものを使うこともできます。
    （'\x01' などのコントロール文字も使用可能。）
    　なお、Perl とは異なり、s<ptn1>{ptn2}opt のように対応する括弧でくく
    ったり、pattern1 と pattern2 を違う文字でくくることはできません。こ
    れは Bregexp.dll と同じ動作です。

    　pattern1 の部分は、Oniguruma の正規表現パターン文法として
    ONIG_SYNTAX_PERL_NG を指定した場合の正規表現が利用可能となっており、
    基本的には Perl 5.8 とほぼ同じ文法が使えます。ただし、Oniguruma のド
    キュメント (*5) にも書かれているように、一部対応していない機能があり
    ます。
    　なお、ONIG_SYNTAX_PERL_NG は「Perl 互換 + 名前付き捕獲式集合」の文
    法であるため、Oniguruma のドキュメントに記載されていても Perl で使え
    ない機能は基本的に bregonig.dll でも使えません。しかし bregonig.dll
    では、利便性のために、異なる文字長の戻り読み、文字集合内の積演算 な
    どは例外的に使えるようにしてあります。
    　以前のバージョンでは、垂直タブを示す \v も使えるようにしてありまし
    たが、Perl 5.10 では \v は別の意味を持っていて矛盾するため、この機能
    は廃止とします。Ver.2.00 で完全に削除されます。
    　Ver.2.00 以降では、Perl 5.10 に合わせて、強欲な量指定子が使えるよ
    うになります。

    (*5) http://www.geocities.jp/kosako3/oniguruma/doc/RE.ja.txt

    　pattern2, options の部分は bregonig.dll が自前で処理を行っており、
    Oniguruma や Bregexp.dll あるいは Perl とは多少仕様が異なっています。
    （詳細は後述）

    　pattern3, pattern4 の部分は、Bregexp.dll のソースをほとんどそのま
    ま流用しているため、使えるパターンも Bregexp.dll とほとんど同じです。
    （\b, \x{HHHH} が追加されている点が異なります。）
    　以前のバージョンでは、垂直タブを示す \v も使えるようにしてありまし
    たが、Perl 5.10 との混乱を避けるため、この機能は廃止とします。
    Ver.2.00 で完全に削除されます。


    　options は、次のものが指定できます。
        i   大文字小文字を区別しない
        k   文字を日本語（SJIS）として扱う (Bregexp.dll 独自拡張)
        m   '^', '$' が文字列中の改行直後・直前にマッチする
        s   '.' が改行にマッチする
        g   置換：グローバルな置換
        c   変換：SEARCHLIST を補集合にする
        d   変換：見つかったが置換されなかった文字を削除する
        s   変換：置換された文字が重なったときに圧縮する
        x   拡張正規表現を使用する

    Bregexp.dll に比べて、BMatch(), BSubst(), BSplit() で s と x が使え
    るように拡張されています。なお、x は pattern1 にのみ効果があり、
    pattern2 には効果はありません。


    　pattern2 で使用可能な特殊文字は以下の通りです。

        \t           水平タブ         (0x09)
        \n           改行             (0x0A)
        \r           復帰             (0x0D)
        \b           後退空白         (0x08)
        \f           改頁             (0x0C)
        \a           鐘               (0x07)
        \e           退避修飾         (0x1B)
        \nnn         八進数表現        符号化バイト値(の一部)
        \xHH         十六進数表現      符号化バイト値(の一部)
        \x{HHHH}     拡張十六進数表現  コードポイント値 (SJIS)
        \cx \c\x     制御文字表現      コードポイント値

    Bregexp.dll に対して \b, \x{HHHH} が追加されています。また、\nnn の
    扱いが一部変更されています。（後述）
    　Perl では、\x{HHHH} は Unicode での文字コードを指定しますが、
    bregonig.dll の現バージョンでは、Shift_JIS での文字コードとなってい
    ます。
    　以前のバージョンでは、垂直タブを示す \v が使えるようにしてありまし
    たが、Perl 5.10 との混乱を避けるため、この機能は廃止とします。
    Ver.2.00 で完全に削除されます。
    　現バージョンでは、\L, \U, \l, \u などは使用できません。


    　pattern2 における部分文字列の参照には以下のものが使用できます。

        \n $n ${n}   番号指定参照 (n は 1 以上の 10進整数)
        $&           マッチした文字列全体
        $+           最後にマッチした部分文字列
        \k<name>     名前指定参照 (Oniguruma 準拠)
        \k'name'     同上
        ${name}      名前指定参照 (bregonig.dll 独自拡張、暫定仕様)
        $+{name}     名前指定参照 (Perl 5.10 準拠)
        $-{name}[n]  名前 + 番号指定参照 (Perl 5.10 準拠)

    Bregexp.dll では \n, $n, $& が使えましたが、bregonig.dll では ${n},
    $+ と名前指定参照が追加されています。${n} が追加されたことにより、
        s/(hoge.)/${1}2/g
    など、番号指定参照の後に続けて数字を書くことが可能になります。
    Bregexp.dll では、これは、
        s/(hoge.)/$1\x32/g
    などと書く必要がありました。（'\x32' は '2' の十六進数表現）

    　Perl とは異なり、$`, $', $^N は使えません。また、Perl では $var な
    どと書くと変数が展開されますが、bregonig.dll ではこれはただの文字列
    として扱われます。また、Perl では $0 は、実行中のスクリプト名を表し
    ますが、bregonig.dll ではこれもただの文字列として扱われます。
    　Ver.1.40 以降では、$+ で最後にマッチした部分文字列を取り出せます。
    例えば、(a)|([^a]) というパターンに対して、$+ を使うと、$1 と $2 の
    どちらかマッチした方の文字列が取り出せます。
    　Perl では、${${1}} などのように番号指定参照などを入れ子にすること
    もできますが、bregonig.dll は、これには対応していません。（有用性が
    不明なため。）
    　Bregexp.dll には、pattern2 の末尾が $ で終わっていると、これが \
    に変換されてしまうというバグがありますが、bregonig.dll ではこれは修
    正されています。

    　pattern2 の名前指定参照では、Oniguruma 準拠の \k<name>, \k'name'
    形式と、bregonig.dll 独自の ${name} 形式と、Perl 5.10 準拠の
    $+{name}, $-{name}[n] 形式が使えます。
    　Perl で ${name} と記述した場合には、変数 $name の中身が展開されま
    すが、bregonig.dll では変数が使えないので、代わりに現バージョンでは
    ${name} を名前指定参照に割り当ててあります。ただし、この仕様は暫定的
    なものであり、今後変更される可能性もあります。
    　Ver.1.40 以降では Perl 5.10 準拠の $+{name}, $-{name}[n] 形式での
    名前指定参照も使えるようになりました。ただし、Perl 5.10 とは、同じ名
    前で重複して定義されていた場合の挙動が異なります。Perl 5.10 では、
    $+{name} は、最も左の結果が取り出せますが、bregonig.dll では、最も右
    の結果が取り出されます。$-{name}[n] を使うと、同じ名前の n 番目のマ
    ッチ結果が取り出せます。n に 0 を指定すると最も左のマッチ結果が取り
    出され、-1 を指定すると最も右のマッチ結果が取り出されます。（同名で
    重複定義されたときの、$+{name} の Perl 5.10 との挙動の違いは
    Ver.2.00 で修正される予定です。）


    ・pattern2 における \nnn の扱いについて
      　Perl では、nnn の数字に対応する括弧の組があれば、\10, \11 などで
      参照できますが、対応する括弧の組がなければ、\10 は \010 (バックス
      ペース) として扱われ、\11 は \011 (タブ) のようになります。しかし
      Bregexp.dll ではこれとは異なり、対応する括弧の組の有無に関わらず、
      nnn の最初の数字が 0 の場合には常に文字の八進数表現として扱い、nnn
      の最初の数字が 1〜9 の場合には常に後方参照となるようになっています。
      そのため、Bregexp.dll では \077 より大きな文字は \nnn 形式では表現
      できず、\xHH 形式を使わなければいけません。
      　bregonig.dll では、Ver.0.09 までは Bregexp.dll の仕様に合わせて
      ありましたが、Ver.0.10 以降では Perl の仕様にほぼ合わせてあります。
      ただし、\18 などのように数字の後ろに八進数で使えない数字が続く場合、
      Perl では括弧の数に応じて ${1}8 あるいは ${18} として扱われますが、
      bregonig.dll では常に ${18} として扱われます。（将来的には、これも
      Perl の仕様に完全に合わせたいと考えています。）


    ・非互換点
      ・オプションで k (日本語モード) を指定すると、\w は [A-Za-z0-9_]
        だけでなく、２バイト文字（漢字等）にもマッチするようになります。
        一方、Bregexp.dll では、オプション k の有無に関わらず、\w は
        [A-Za-z0-9_] と同義です。なお、Perl 5.8 でも、検索対象が Unicode
        文字列（utf8 フラグがオン）ならば、\w は多バイト文字にもマッチし
        ます。

      ・文字集合内で演算子を使えるように仕様変更したことにより、[ ] の中
        に [ を書くときは必ず \[ のようにエスケープしなければならなくな
        りました。(Ver.1.30 以降)



５．制限事項・注意事項
    　現バージョンでは、Visual Basic 用の API は実装されていません。VB
    製のアプリケーションから使用する場合は、オリジナルの Bregexp.dll を
    お使いください。

    　Oniguruma 自体は各種文字エンコーディングに対応していますが、
    bregonig.dll は Bregexp.dll との互換性のため、ASCII と Shift_JIS 以
    外の文字エンコーディングは使用できません。（Ver.2.00 以降では、
    UTF-16LE も使えるようになります。）

    　bregonig.dll は十分テストしてあるつもりですが、オリジナルの
    Bregexp.dll との互換性に問題があったり、バグが残っている可能性もあり
    ます。実際に使用する際には、事前に十分にテストを行うことをお薦めしま
    す。（バグを見つけた際には報告をお願いします。）

    　一応、マルチスレッドライブラリを用いてコンパイルしてありますが、本
    当にマルチスレッドで使えるかどうかは確認していません。

    　Ver.1.xx は Perl 5.8 互換、Ver.2.xx は Unicode 対応 API + Perl
    5.10 互換（ただし、名前指定参照は Oniguruma 形式）という方向で開発を
    進めていく予定です。



６．コンパイル方法
    　コンパイラは Visual C++ 6.0 以降に対応しています。
    　同梱の Oniguruma マルチスレッド対応 & 設定変更 & \G 動作変更パッチ
    (onig-5.9.1-mod.diff) を使って、Oniguruma にパッチを当ててからコンパ
    イルしてください。なお、Oniguruma マルチスレッド対応パッチは OnigPP
    (*6) を参考にしています。

    (*6) http://www.void.in/wiki/OnigPP


    手順例）
    　.\bregonig\ に bregonig.dll のソースと前述のパッチがあり、
    .\onig-x.y.z\ に Oniguruma のソースがあるものとします。（x.y.z の部
    分はバージョンに合わせて読み替えてください。）
        > cd onig-x.y.z
        > patch -p1 -T < ../bregonig/onig-x.y.z-mod.diff
        > copy win32\*.* .
        > nmake onig_s.lib "CFLAGS=/O2 /W3 /MT /DONIG_EXTERN=extern"
        > cd ..\bregonig
        > nmake ONIG_DIR=../onig-x.y.z

    Oniguruma のコンパイル時に、VS2005 以降を使うときは CFLAGS に
    /D_CRT_SECURE_NO_DEPRECATE を追加しておくと、余計な warning が減りま
    す。また、/nologo を追加しておくのも良いでしょう。



７．更新履歴
    2006/08/24  Ver.0.01
        ・最初の公開バージョン。
        ・Oniguruma 4.3.1 を使用。

    2006/08/25  Ver.0.02
        ・k2regexp.dll で BMatch() の one_shot モードに対応。
        ・正規表現パターン文法を ONIG_SYNTAX_PERL から
          ONIG_SYNTAX_PERL_NG に変更。これにより名前付き捕獲式集合が使用
          可能に。
        ・暫定的に、戻り読みで長さの異なる文字列を指定可能に。（今後変更
          される可能性あり）
        　例. (?<=a|bc)
        ・Oniguruma 4.4.0 を使用。

    2006/08/27
        ・パターンとして空文字列を渡したときに、BMatch() や BSubst() で
          文字列の先頭にマッチしていたのをマッチしないように変更。（オリ
          ジナルの Bregexp.dll の挙動にあわせるため。）

    2006/08/28  Ver.0.03
        ・K2Editor などで置換で落ちる場合があった重大バグを修正。
        ・BSplit() を実装。
        ・Oniguruma 4.4.0 を使用。

    2006/08/29  Ver.0.04
        ・BTrans() を実装。
        ・BRegexpVersion() が返すバージョン番号を更新するのを忘れていた
          ので、更新。
        ・Oniguruma 4.4.0 を使用。

    2006/08/30  Ver.0.05
        ・メモリ不足のときのエラー処理を見直し。
        ・バージョンリソースを付加。
        ・Oniguruma 4.4.1 を使用。

    2006/08/31  Ver.0.06
        ・サクラエディタで大きなファイルに対して「すべて置換」「すべて行
          置換」を実行すると落ちる場合があるので、とりあえず暫定的に対策。
          詳細は調査中。
        ・Oniguruma の API をエクスポートしないように変更。
        ・Oniguruma 4.4.1 を使用。

    2006/09/02  Ver.0.07
        ・Ver.0.06 での対策を少し変更。
        ・コンパイル手順の例を加筆。
        ・Oniguruma 4.4.1 を使用。

    2006/09/04
        ・Spam Mail Killer で動作確認。

    2006/09/06
        ・DLL アンロード時に onig_end() を呼び出すように変更。

    2006/09/07
        ・INCM で動作確認。
        ・ソース上の細かい修正。

    2006/09/09  Ver.0.08
        ・鬼車の更新により、サクラエディタで落ちる問題が解消された。
          （Ver.0.06 での暫定的な対策をしっかりしたものに変更。）
        ・鬼車の更新により、否定戻り読みの中で肯定戻り読みが使えるように
          なった。可変長の戻り読みを使う場合は、代わりにこちらを使うこと
          を推奨。（Perl との互換性のため）
        　例. (?<!(?<=a)b|c)
        ・Oniguruma 4.4.2 を使用。

    2006/09/12  Ver.0.09
        ・pattern2 での \c\x の扱いを pattern1 の鬼車の仕様に合わせるよ
          うに変更。（現バージョンでは、pattern3, pattern4 に関しては以
          前の仕様のまま。）（今後変更される可能性あり）
        　例. \c\[ == \c[ == Ctrl-[ == \x1B  (pattern1, 2)
        　    \c\[ == Ctrl-\ + [ == \x1C\x5B (pattern3, 4)
        ・Oniguruma 4.4.2 を使用。

    2006/09/14  Ver.0.10 （非公開）
        ・pattern2 で \nnn の仕様を Bregexp.dll から Perl に合わせるよう
          に変更。（これに合わせて、subst.cpp を大幅書き換え。）
        ・Oniguruma 4.4.2 を使用。

    2006/09/14  Ver.0.11
        ・pattern2 で \0nn が機能していなかったバグを修正。
        ・pattern2 で名前参照が使えるようになった。（ただし今後仕様が変
          更される可能性あり）
        ・Ver.0.10 で ${n} が使えなくなっていたバグを修正。
        ・Oniguruma 4.4.2 を使用。

    2006/09/16  Ver.0.11a （非公開）
        ・ドキュメント修正。
        ・Oniguruma 4.4.3 を使用。

    2006/09/18  Ver.0.11b
        ・ファイルサイズを 15KiB 削減。
        ・Oniguruma 4.4.3 を使用。

    2006/10/20
        ・Oniguruma 5.0.0 を使用。
        ・Oniguruma にバグがあったため、非公開。

    2006/10/27  Ver.1.00
        ・試作版から正式版に昇格。
        ・Oniguruma 5.0.1 を使用。これにより、[:word:], \p{Word} が使用
          可能になった。

    2006/11/05  Ver.1.01
        ・Win9x でサクラエディタの終了時に落ちることがあったバグを修正。
        ・Oniguruma 5.0.1 を使用。

    2006/11/09
        ・Oniguruma 5.1.0 を使用。

    2006/11/14  Ver.1.10
        ・Oniguruma 5.2.0 を使用。（[:punct:] 修正。）

    2006/11/22  Ver.1.20
        ・Oniguruma 5.3.0 を使用。（\p{Hiragana}, \p{Katakana} が使用可
          能に。）

    2007/01/21  Ver.1.21
        ・Oniguruma 5.5.2 を使用。

    2007/06/23  Ver.1.30
        ・Oniguruma 5.8.0 を使用。（pattern1 で \k'name' が使用可能に。）
        ・pattern2 で \k'name' を使えるように改良。
        ・pattern1 で \v が使えなかった問題を修正。（ONIG_SYNTAX_PERL_NG
          では本来使えないが、利便性のため。）
        ・pattern1 で、文字集合に [a-w&&[^c-g]z] などの表記が使えるよう
          に仕様変更。（ONIG_SYNTAX_PERL_NG では本来使えないが、利便性の
          ため。）
        ・pattern2 で \x{HHHH} が使えなかったバグを修正。
        ・pattern3,4 で \nnn が正常に使えなかったバグを修正。
          （Bregexp.dll からのバグ）
        ・pattern3,4 で \x{HHHH} を使えるように改良。
        ・pattern2 に、\xQQ, \x{12{, ${3{ などのような不正なパターンを指
          定した場合の挙動を修正。今までは動作は不定だったが、できるだけ
          そのままの文字列として扱うようにした。（Perl とは異なり、エラ
          ーとはならない。）

    2007/06/26  Ver.1.31
        ・Oniguruma 5.8.0 改変版を使用。（非マルチラインモードで $ が改
          行の直前にマッチしないバグを修正。）

    2007/07/15  Ver.1.31a
        ・ドキュメントの見直し。（曖昧な表現の修正、説明の追加など）
        ・（bregonig.dll, k2regexp.dll 自体の変更は無し。）

    2007/08/04  Ver.1.32
        ・マッチ長が 0 バイトのとき、BSubst() で置換が出来なかったバグを
          修正。
        ・BREGEXP 構造体の startp, endp 配列の中身に不正な値が設定される
          場合があったバグを修正。（(a)|(b) のようなパターンを与えた場合、
          マッチしなかった方に不正な値が入っていた。）
        ・垂直タブを意味する \v を廃止した。（Perl 5.10 と矛盾するため。）
        ・Ver.2.00 での仕様変更が決定している事項について言及。
        ・Ver.1.10 以降でマルチスレッド対応が無効になっていたバグを修正。
        ・Oniguruma 5.9.0 を使用。（高速化のため一部設定変更）

    2007/08/26  Ver.1.40
        ・ソースを Ver.2.00 系列と統一。（サンプルファイル含む）（これに
          より、bregexp.h をインクルードする前に tchar.h または
          windows.h をインクルードしなければならなくなった。）
        ・$+, $+{name}, $-{name}[n] を使えるようにした。
        ・検索パターン (pattern1) で名前付き捕獲と名前無し捕獲の同時使用
          ができるように仕様を変更。
        ・ドキュメントの見直し。
        ・Oniguruma 5.9.0 を使用。（設定をさらに変更）

    2007/08/28  Ver.1.41
        ・BRegIf.DLL で、;n 形式が使えなかったバグを修正。（検索に失敗し
          たときに、nparens に値が設定されていなかった。）
        ・Oniguruma 5.9.0 を使用。（設定変更版）

    2007/08/29  Ver.1.41a
        ・ドキュメントのミスを修正。
        ・（bregonig.dll, k2regexp.dll 自体の変更は無し。）

    2007/09/28  Ver.1.42
        ・BREGEXP 構造体の rsv1 の型を int から INT_PTR に変更。（これに
          より、bregexp.h をインクルードする前に windows.h をインクルー
          ドしなければならなくなった。）（64bit化を考慮しての変更。現行
          の 32bit版の動作には影響なし。）
        ・BSubst() で g オプションと \G を使用した際の動作が、
          Bregexp.dll と異なる場合があったのを修正。
        ・BSubst() でゼロ幅マッチ時に２バイト文字を正しく扱えない場合が
          あったのを修正。
        ・Oniguruma 5.9.0 改変版を使用。（\G 対応のための改変）

    2008/03/12  Ver.1.43
        ・Oniguruma 5.9.1 改変版を使用。（\G 対応のための改変）
          - 大文字小文字を区別しないときに、否定文字集合が正しく動かない
            のを修正。
          - pattern1 で \k<n> などの番号指定参照に対応。

    2008/10/12  Ver.1.44
        ・BTrans() で c オプションが効かない場合があったのを修正。
          （h-tomさん、ありがとうございます。）

    2008/10/15  Ver.1.45 （非公開）
        ・DLL のベースアドレスをデフォルト値から変更。（DLL のロード高速
          化やシステム全体で見たときのメモリ使用量削減が期待できる。）

    2009/01/17  Ver.1.45
        ・デバッグ用コードが残っていたのを削除。
        ・コンパイルオプションの見直しにより、ファイルサイズを削減。
        ・bsd_license.txt に、Oniguruma の最新版のライセンスを反映。


８．ライセンス
    　bregonig.dll のライセンスは Bregexp.dll 同様に Perl と同じライセン
    ス、すなわち GPL と Artistic License のどちらかを選択できるものとし
    ます。Artistic License は同梱の perl_license.txt,
    perl_license_jp.txt を参照してください。
    　また、bregonig.dll は、正規表現ライブラリとして Oniguruma を使用し
    ており、Oniguruma は BSD ライセンスとなっています。また、ソースファ
    イルの一部にも BSD ライセンスのものが含まれています。同梱の
    bsd_license.txt を参照してください。再配布などの際には、BSD ライセン
    スに従い、bsd_license.txt も同梱してください。（ドキュメントに
    bsd_license.txt の内容を転記でも可）


９．謝辞
    　すばらしいライブラリを作られた以下の各氏に感謝します。
        K.Kosako氏 (Oniguruma)
        Tatsuo Baba氏 (Bregexp.dll)
        Koyabu Kazuya(K2)氏 (K2Regexp.dll)
        かろと氏 (Bregexp.dll for SAKURA)


１０．連絡先
        作者:   K.Takata (高田 謙)
        E-mail: kentkt ATMARK csc DOT jp
        URL:    http://webs.to/ken/
                http://homepage3.nifty.com/k-takata/
