
正規表現

(1)メタキャラクタ
    \   直後の文字をエスケープ
    .   任意の一文字とマッチ
    ^   行の先頭にマッチ
    $   行の末尾にマッチ
    *   直前の要素に0回以上マッチ
    +   直前の要素に1回以上マッチ
    ?   直前の要素に，0回または1回マッチ
  [...] []内のどれか1つにマッチ([]内の先頭に^がある場合，[]内以外の文字にマッチ)
  (...) 正規表現のグループ化
    |   前後どちらかの正規表現にマッチ

(2)エスケープシーケンス
    \n  改行文字
    \r  復帰文字
    \t  タブ
    \f  改ページ文字
	\xNN, \x{NNNN}  16進数のコードで指定された文字 (例: \x41, \x{0041})
	\Q	\Eまでメタ文字を無効化 (例: \QA+B\E -> A+Bにマッチ)
	\E	\Qの終端

(3)文字クラス
    \d  数字([0-9]と同等)
    \D  数字以外([^0-9]と同等)
    \w  単語構成文字([a-zA-Z_0-9]と同じ)
    \W  単語構成文字以外([^a-zA-Z_0-9]と同じ)
    \s  空白文字([ \t\f]と同じ)
    \S  空白文字以外([^ \t\f]と同じ)
    \l  空白文字 + 改行文字([ \t\f\r\n]と同じ)

(4)量指定子
  {n,m} n回以上，m回以下
  {n,}  n回以上
  {n}   ちょうどn回
   *    0回以上({0,}と同じ)
   +    1回以上({1,}と同じ)
   ?    0回または1回({0,1}と同じ)
   
   量指定子の後に?を付けたときは，最短マッチを行う (例:*?)
   量指定子の後に+を付けたときは，バックトラックを行わない (例:*+)


(5)後方参照
   \1    1番目の括弧で囲まれた要素にマッチした文字列(以下\2〜\9も同様)
   \+    括弧で囲まれた要素に最後にマッチした文字列
   \&    マッチした文字列全体
   \`    マッチした文字列の前にある文字列
   \'    マッチした文字列の後ろにある文字列
   \g{N} 相対的な後方参照 (\g{-1}で一つ前の要素を指定)
   \k<NAME> 名前つきキャプチャバッファの後方参照
   
   置換文字列には，\の代わりに$も利用可能
   名前つきキャプチャバッファは、$+{NAME}で参照

(6)ゼロ幅表明
   \b  単語境界
   \B  単語境界以外
   \A  テキストの先頭
   \z  テキストの末尾
   \Z  テキストの末尾または改行の直前
   
   \=A 選択範囲の先頭
   \=z 選択範囲の末尾
   \=^ 選択範囲の各行の先頭
   \=$ 選択範囲の各行の末尾

(7)拡張正規表現
   (?#text)    コメント
   (?:...)     後方参照用の保存を行わないカッコ
   (?=...)     lookahead assertion
   (?!...)     lookahead assertionの否定
   (?<=...)    lookbehind assertion
   (?<!...)    lookbehind assertionの否定
   (?>...)     バックトラックしない
   (?<NAME>...)  名前つきキャプチャバッファ
   (?R...)     recursive pattern
   (?PARNO...) recursive pattern (PARNOは0〜9, ?0は?Rと同義)
   (?&NAME...) 名前付きキャプチャバッファのrecursive pattern
   (?(COND)IFTRUE|IFFALSE)  条件付き展開
   (?isS-isS)  パターン修飾子のON/OFF
   (?isS-isS:) 後方参照用の保存を行わないカッコにパターン修飾子を指定
   \K          \Kより前を検索結果$&に含めない (keep pattern)

(8)POSIX文字クラス
   [:ascii:]   0〜127までの文字
   [:upper:]   [A-Z]と等価
   [:lower:]   [a-z]と等価
   [:alpha:]   [A-Za-z]と等価
   [:alnum:]   [A-Za-z0-9]と等価
   [:digit:]   [0-9]と等価

(9)パターン修飾子
   i: 大文字小文字を区別しない
   s: .に改行文字にもマッチさせる
   S: \sに改行文字にもマッチさせる

