public abstract class org.joni.Matcher extends org.jcodings.IntHolder
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.joni.Matcher
  super_class: org.jcodings.IntHolder
{
  public static final int FAILED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public static final int INTERRUPTED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2

  protected final org.joni.Regex regex;
    descriptor: Lorg/joni/Regex;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.jcodings.Encoding enc;
    descriptor: Lorg/jcodings/Encoding;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final byte[] bytes;
    descriptor: [B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final int str;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final int end;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected int msaStart;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int msaOptions;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected final org.joni.Region msaRegion;
    descriptor: Lorg/joni/Region;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected int msaBestLen;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int msaBestS;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int msaBegin;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int msaEnd;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  int low;
    descriptor: I
    flags: (0x0000) 

  int high;
    descriptor: I
    flags: (0x0000) 

  private byte[] icbuf;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  void <init>(org.joni.Regex, org.joni.Region, byte[], int, int);
    descriptor: (Lorg/joni/Regex;Lorg/joni/Region;[BII)V
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // org.joni.Matcher this
        start local 1 // org.joni.Regex regex
        start local 2 // org.joni.Region region
        start local 3 // byte[] bytes
        start local 4 // int p
        start local 5 // int end
         0: .line 51
            aload 0 /* this */
            invokespecial org.jcodings.IntHolder.<init>:()V
         1: .line 52
            aload 0 /* this */
            aload 1 /* regex */
            putfield org.joni.Matcher.regex:Lorg/joni/Regex;
         2: .line 53
            aload 0 /* this */
            aload 1 /* regex */
            getfield org.joni.Regex.enc:Lorg/jcodings/Encoding;
            putfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
         3: .line 54
            aload 0 /* this */
            aload 3 /* bytes */
            putfield org.joni.Matcher.bytes:[B
         4: .line 55
            aload 0 /* this */
            iload 4 /* p */
            putfield org.joni.Matcher.str:I
         5: .line 56
            aload 0 /* this */
            iload 5 /* end */
            putfield org.joni.Matcher.end:I
         6: .line 57
            aload 0 /* this */
            aload 2 /* region */
            putfield org.joni.Matcher.msaRegion:Lorg/joni/Region;
         7: .line 58
            return
        end local 5 // int end
        end local 4 // int p
        end local 3 // byte[] bytes
        end local 2 // org.joni.Region region
        end local 1 // org.joni.Regex regex
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/joni/Matcher;
            0    8     1   regex  Lorg/joni/Regex;
            0    8     2  region  Lorg/joni/Region;
            0    8     3   bytes  [B
            0    8     4       p  I
            0    8     5     end  I
    MethodParameters:
        Name  Flags
      regex   
      region  
      bytes   
      p       
      end     

  protected abstract int matchAt(int, int, int, boolean);
    descriptor: (IIIZ)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
           Name  Flags
      range      
      sstart     
      sprev      
      interrupt  

  protected abstract void stateCheckBuffInit(int, int, int);
    descriptor: (III)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      strLength  
      offset     
      stateNum   

  protected abstract void stateCheckBuffClear();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  public abstract void interrupt();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public final org.joni.Region getRegion();
    descriptor: ()Lorg/joni/Region;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.joni.Matcher this
         0: .line 69
            aload 0 /* this */
            getfield org.joni.Matcher.msaRegion:Lorg/joni/Region;
            areturn
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joni/Matcher;

  public final org.joni.Region getEagerRegion();
    descriptor: ()Lorg/joni/Region;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.joni.Matcher this
         0: .line 73
            aload 0 /* this */
            getfield org.joni.Matcher.msaRegion:Lorg/joni/Region;
            ifnull 1
            aload 0 /* this */
            getfield org.joni.Matcher.msaRegion:Lorg/joni/Region;
            goto 2
      StackMap locals:
      StackMap stack:
         1: new org.joni.Region
            dup
            aload 0 /* this */
            getfield org.joni.Matcher.msaBegin:I
            aload 0 /* this */
            getfield org.joni.Matcher.msaEnd:I
            invokespecial org.joni.Region.<init>:(II)V
      StackMap locals:
      StackMap stack: org.joni.Region
         2: areturn
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/joni/Matcher;

  public final int getBegin();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.joni.Matcher this
         0: .line 77
            aload 0 /* this */
            getfield org.joni.Matcher.msaBegin:I
            ireturn
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joni/Matcher;

  public final int getEnd();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.joni.Matcher this
         0: .line 81
            aload 0 /* this */
            getfield org.joni.Matcher.msaEnd:I
            ireturn
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joni/Matcher;

  protected final void msaInit(int, int);
    descriptor: (II)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.joni.Matcher this
        start local 1 // int option
        start local 2 // int start
         0: .line 85
            aload 0 /* this */
            iload 1 /* option */
            putfield org.joni.Matcher.msaOptions:I
         1: .line 86
            aload 0 /* this */
            iload 2 /* start */
            putfield org.joni.Matcher.msaStart:I
         2: .line 87
            aload 0 /* this */
            iconst_m1
            putfield org.joni.Matcher.msaBestLen:I
         3: .line 88
            return
        end local 2 // int start
        end local 1 // int option
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/joni/Matcher;
            0    4     1  option  I
            0    4     2   start  I
    MethodParameters:
        Name  Flags
      option  
      start   

  public final int match(int, int, int);
    descriptor: (III)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.joni.Matcher this
        start local 1 // int at
        start local 2 // int range
        start local 3 // int option
         0: .line 92
            aload 0 /* this */
            iload 1 /* at */
            iload 2 /* range */
            iload 3 /* option */
            iconst_0
            invokevirtual org.joni.Matcher.matchCommon:(IIIZ)I
         1: ireturn
         2: .line 93
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
         3: .line 94
            bipush -2
            ireturn
        end local 3 // int option
        end local 2 // int range
        end local 1 // int at
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/joni/Matcher;
            0    4     1      at  I
            0    4     2   range  I
            0    4     3  option  I
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.InterruptedException
    MethodParameters:
        Name  Flags
      at      
      range   
      option  

  public final int matchInterruptible(int, int, int);
    descriptor: (III)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.joni.Matcher this
        start local 1 // int at
        start local 2 // int range
        start local 3 // int option
         0: .line 99
            aload 0 /* this */
            iload 1 /* at */
            iload 2 /* range */
            iload 3 /* option */
            iconst_1
            invokevirtual org.joni.Matcher.matchCommon:(IIIZ)I
            ireturn
        end local 3 // int option
        end local 2 // int range
        end local 1 // int at
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/joni/Matcher;
            0    1     1      at  I
            0    1     2   range  I
            0    1     3  option  I
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
        Name  Flags
      at      
      range   
      option  

  private final int matchCommon(int, int, int, boolean);
    descriptor: (IIIZ)I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.joni.Matcher this
        start local 1 // int at
        start local 2 // int range
        start local 3 // int option
        start local 4 // boolean interrupt
         0: .line 103
            aload 0 /* this */
            iload 3 /* option */
            iload 1 /* at */
            invokevirtual org.joni.Matcher.msaInit:(II)V
         1: .line 110
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            iload 1 /* at */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 5 /* prev */
        start local 5 // int prev
         2: .line 115
            aload 0 /* this */
            iload 2 /* range */
            iload 1 /* at */
            iload 5 /* prev */
            iload 4 /* interrupt */
            invokevirtual org.joni.Matcher.matchAt:(IIIZ)I
            ireturn
        end local 5 // int prev
        end local 4 // boolean interrupt
        end local 3 // int option
        end local 2 // int range
        end local 1 // int at
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/joni/Matcher;
            0    3     1         at  I
            0    3     2      range  I
            0    3     3     option  I
            0    3     4  interrupt  Z
            2    3     5       prev  I
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
           Name  Flags
      at         
      range      
      option     
      interrupt  

  private final boolean forwardSearchRange(byte[], int, int, int, int, org.jcodings.IntHolder);
    descriptor: ([BIIIILorg/jcodings/IntHolder;)Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=7, locals=10, args_size=7
        start local 0 // org.joni.Matcher this
        start local 1 // byte[] bytes
        start local 2 // int str
        start local 3 // int end
        start local 4 // int s
        start local 5 // int range
        start local 6 // org.jcodings.IntHolder lowPrev
         0: .line 121
            iconst_m1
            istore 7 /* pprev */
        start local 7 // int pprev
         1: .line 122
            iload 4 /* s */
            istore 8 /* p */
        start local 8 // int p
         2: .line 126
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMin:I
            ifle 10
         3: .line 127
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.isSingleByte:()Z
            ifeq 6
         4: .line 128
            iload 8 /* p */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMin:I
            iadd
            istore 8 /* p */
         5: .line 129
            goto 10
         6: .line 130
      StackMap locals: int int
      StackMap stack:
            iload 8 /* p */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMin:I
            iadd
            istore 9 /* q */
        start local 9 // int q
         7: .line 131
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iload 8 /* p */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 8 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.length:([BII)I
            iadd
            istore 8 /* p */
      StackMap locals:
      StackMap stack:
         9: iload 8 /* p */
            iload 9 /* q */
            if_icmpge 10
            iload 8 /* p */
            iload 3 /* end */
            if_icmplt 8
        end local 9 // int q
        10: .line 137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.forward:Lorg/joni/Search$Forward;
            aload 0 /* this */
            aload 1 /* bytes */
            iload 8 /* p */
            iload 3 /* end */
            iload 5 /* range */
            invokevirtual org.joni.Search$Forward.search:(Lorg/joni/Matcher;[BIII)I
            istore 8 /* p */
        11: .line 139
            iload 8 /* p */
            iconst_m1
            if_icmpeq 57
            iload 8 /* p */
            iload 5 /* range */
            if_icmpge 57
        12: .line 140
            iload 8 /* p */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMin:I
            isub
            iload 4 /* s */
            if_icmpge 16
        13: .line 142
            iload 8 /* p */
            istore 7 /* pprev */
        14: .line 143
            iload 8 /* p */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 8 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.length:([BII)I
            iadd
            istore 8 /* p */
        15: .line 144
            goto 10
        16: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.subAnchor:I
            ifeq 32
        17: .line 148
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.subAnchor:I
            lookupswitch { // 2
                    2: 18
                   32: 26
              default: 32
          }
        18: .line 150
      StackMap locals:
      StackMap stack:
            iload 8 /* p */
            iload 2 /* str */
            if_icmpeq 32
        19: .line 151
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 7 /* pprev */
            iconst_m1
            if_icmpeq 20
            iload 7 /* pprev */
            goto 21
      StackMap locals: org.joni.Matcher byte[] int int int int org.jcodings.IntHolder int int
      StackMap stack: org.jcodings.Encoding byte[]
        20: iload 2 /* str */
      StackMap locals: org.joni.Matcher byte[] int int int int org.jcodings.IntHolder int int
      StackMap stack: org.jcodings.Encoding byte[] int
        21: iload 8 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 9 /* prev */
        start local 9 // int prev
        22: .line 152
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 9 /* prev */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.isNewLine:([BII)Z
            ifne 32
        23: .line 154
            iload 8 /* p */
            istore 7 /* pprev */
        24: .line 155
            iload 8 /* p */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 8 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.length:([BII)I
            iadd
            istore 8 /* p */
        25: .line 156
            goto 10
        end local 9 // int prev
        26: .line 162
      StackMap locals:
      StackMap stack:
            iload 8 /* p */
            iload 3 /* end */
            if_icmpne 28
        27: .line 172
            goto 32
      StackMap locals:
      StackMap stack:
        28: aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 8 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.isNewLine:([BII)Z
            ifne 32
        29: .line 175
            iload 8 /* p */
            istore 7 /* pprev */
        30: .line 176
            iload 8 /* p */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 8 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.length:([BII)I
            iadd
            istore 8 /* p */
        31: .line 177
            goto 10
        32: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            ifne 42
        33: .line 184
            aload 0 /* this */
            iload 8 /* p */
            putfield org.joni.Matcher.low:I
        34: .line 185
            aload 6 /* lowPrev */
            ifnull 55
        35: .line 186
            aload 0 /* this */
            getfield org.joni.Matcher.low:I
            iload 4 /* s */
            if_icmple 38
        36: .line 187
            aload 6 /* lowPrev */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 4 /* s */
            iload 8 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            putfield org.jcodings.IntHolder.value:I
        37: .line 188
            goto 55
        38: .line 189
      StackMap locals:
      StackMap stack:
            aload 6 /* lowPrev */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 7 /* pprev */
            iconst_m1
            if_icmpeq 39
            iload 7 /* pprev */
            goto 40
      StackMap locals: org.joni.Matcher byte[] int int int int org.jcodings.IntHolder int int
      StackMap stack: org.jcodings.IntHolder org.jcodings.Encoding byte[]
        39: iload 2 /* str */
      StackMap locals: org.joni.Matcher byte[] int int int int org.jcodings.IntHolder int int
      StackMap stack: org.jcodings.IntHolder org.jcodings.Encoding byte[] int
        40: iload 8 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            putfield org.jcodings.IntHolder.value:I
        41: .line 192
            goto 55
        42: .line 193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            ldc 2147483647
            if_icmpeq 55
        43: .line 194
            aload 0 /* this */
            iload 8 /* p */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            isub
            putfield org.joni.Matcher.low:I
        44: .line 196
            aload 0 /* this */
            getfield org.joni.Matcher.low:I
            iload 4 /* s */
            if_icmple 51
        45: .line 197
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 4 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.low:I
            iload 3 /* end */
            aload 6 /* lowPrev */
            invokevirtual org.jcodings.Encoding.rightAdjustCharHeadWithPrev:([BIIILorg/jcodings/IntHolder;)I
            putfield org.joni.Matcher.low:I
        46: .line 198
            aload 6 /* lowPrev */
            ifnull 55
            aload 6 /* lowPrev */
            getfield org.jcodings.IntHolder.value:I
            iconst_m1
            if_icmpne 55
        47: .line 199
            aload 6 /* lowPrev */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 7 /* pprev */
            iconst_m1
            if_icmpeq 48
            iload 7 /* pprev */
            goto 49
      StackMap locals: org.joni.Matcher byte[] int int int int org.jcodings.IntHolder int int
      StackMap stack: org.jcodings.IntHolder org.jcodings.Encoding byte[]
        48: iload 4 /* s */
      StackMap locals: org.joni.Matcher byte[] int int int int org.jcodings.IntHolder int int
      StackMap stack: org.jcodings.IntHolder org.jcodings.Encoding byte[] int
        49: aload 0 /* this */
            getfield org.joni.Matcher.low:I
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            putfield org.jcodings.IntHolder.value:I
        50: .line 201
            goto 55
        51: .line 202
      StackMap locals:
      StackMap stack:
            aload 6 /* lowPrev */
            ifnull 55
        52: .line 203
            aload 6 /* lowPrev */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 7 /* pprev */
            iconst_m1
            if_icmpeq 53
            iload 7 /* pprev */
            goto 54
      StackMap locals: org.joni.Matcher byte[] int int int int org.jcodings.IntHolder int int
      StackMap stack: org.jcodings.IntHolder org.jcodings.Encoding byte[]
        53: iload 2 /* str */
      StackMap locals: org.joni.Matcher byte[] int int int int org.jcodings.IntHolder int int
      StackMap stack: org.jcodings.IntHolder org.jcodings.Encoding byte[] int
        54: aload 0 /* this */
            getfield org.joni.Matcher.low:I
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            putfield org.jcodings.IntHolder.value:I
        55: .line 209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 8 /* p */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMin:I
            isub
            putfield org.joni.Matcher.high:I
        56: .line 211
            iconst_1
            ireturn
        57: .line 213
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 8 // int p
        end local 7 // int pprev
        end local 6 // org.jcodings.IntHolder lowPrev
        end local 5 // int range
        end local 4 // int s
        end local 3 // int end
        end local 2 // int str
        end local 1 // byte[] bytes
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   58     0     this  Lorg/joni/Matcher;
            0   58     1    bytes  [B
            0   58     2      str  I
            0   58     3      end  I
            0   58     4        s  I
            0   58     5    range  I
            0   58     6  lowPrev  Lorg/jcodings/IntHolder;
            1   58     7    pprev  I
            2   58     8        p  I
            7   10     9        q  I
           22   26     9     prev  I
    MethodParameters:
         Name  Flags
      bytes    
      str      
      end      
      s        
      range    
      lowPrev  

  private final boolean backwardSearchRange(byte[], int, int, int, int, int);
    descriptor: ([BIIIII)Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=9, locals=9, args_size=7
        start local 0 // org.joni.Matcher this
        start local 1 // byte[] bytes
        start local 2 // int str
        start local 3 // int end
        start local 4 // int s
        start local 5 // int range
        start local 6 // int adjrange
         0: .line 219
            iload 5 /* range */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMin:I
            iadd
            istore 5 /* range */
         1: .line 220
            iload 4 /* s */
            istore 7 /* p */
        start local 7 // int p
         2: .line 223
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.backward:Lorg/joni/Search$Backward;
            aload 0 /* this */
            aload 1 /* bytes */
            iload 5 /* range */
            iload 6 /* adjrange */
            iload 3 /* end */
            iload 7 /* p */
            iload 4 /* s */
            iload 5 /* range */
            invokevirtual org.joni.Search$Backward.search:(Lorg/joni/Matcher;[BIIIIII)I
            istore 7 /* p */
         3: .line 225
            iload 7 /* p */
            iconst_m1
            if_icmpeq 21
         4: .line 226
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.subAnchor:I
            ifeq 16
         5: .line 227
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.subAnchor:I
            lookupswitch { // 2
                    2: 6
                   32: 11
              default: 16
          }
         6: .line 229
      StackMap locals:
      StackMap stack:
            iload 7 /* p */
            iload 2 /* str */
            if_icmpeq 16
         7: .line 230
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 2 /* str */
            iload 7 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 8 /* prev */
        start local 8 // int prev
         8: .line 231
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 8 /* prev */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.isNewLine:([BII)Z
            ifne 16
         9: .line 232
            iload 8 /* prev */
            istore 7 /* p */
        10: .line 233
            goto 2
        end local 8 // int prev
        11: .line 239
      StackMap locals:
      StackMap stack:
            iload 7 /* p */
            iload 3 /* end */
            if_icmpne 13
        12: .line 248
            goto 16
      StackMap locals:
      StackMap stack:
        13: aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 7 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.isNewLine:([BII)Z
            ifne 16
        14: .line 249
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 6 /* adjrange */
            iload 7 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 7 /* p */
        15: .line 250
            iload 7 /* p */
            iconst_m1
            if_icmpne 2
            iconst_0
            ireturn
        16: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            ldc 2147483647
            if_icmpeq 20
        17: .line 259
            aload 0 /* this */
            iload 7 /* p */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            isub
            putfield org.joni.Matcher.low:I
        18: .line 260
            aload 0 /* this */
            iload 7 /* p */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMin:I
            isub
            putfield org.joni.Matcher.high:I
        19: .line 261
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 1 /* bytes */
            iload 6 /* adjrange */
            aload 0 /* this */
            getfield org.joni.Matcher.high:I
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.rightAdjustCharHead:([BIII)I
            putfield org.joni.Matcher.high:I
        20: .line 265
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        21: .line 269
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 7 // int p
        end local 6 // int adjrange
        end local 5 // int range
        end local 4 // int s
        end local 3 // int end
        end local 2 // int str
        end local 1 // byte[] bytes
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lorg/joni/Matcher;
            0   22     1     bytes  [B
            0   22     2       str  I
            0   22     3       end  I
            0   22     4         s  I
            0   22     5     range  I
            0   22     6  adjrange  I
            2   22     7         p  I
            8   11     8      prev  I
    MethodParameters:
          Name  Flags
      bytes     
      str       
      end       
      s         
      range     
      adjrange  

  private boolean matchCheck(int, int, int, boolean);
    descriptor: (IIIZ)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.joni.Matcher this
        start local 1 // int upperRange
        start local 2 // int s
        start local 3 // int prev
        start local 4 // boolean interrupt
         0: .line 287
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            iload 2 /* s */
            iload 3 /* prev */
            iload 4 /* interrupt */
            invokevirtual org.joni.Matcher.matchAt:(IIIZ)I
            iconst_m1
            if_icmpeq 2
         1: .line 289
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.options:I
            invokestatic org.joni.Option.isFindLongest:(I)Z
            ifne 2
            iconst_1
            ireturn
         2: .line 296
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // boolean interrupt
        end local 3 // int prev
        end local 2 // int s
        end local 1 // int upperRange
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/joni/Matcher;
            0    3     1  upperRange  I
            0    3     2           s  I
            0    3     3        prev  I
            0    3     4   interrupt  Z
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
            Name  Flags
      upperRange  
      s           
      prev        
      interrupt   

  public final int search(int, int, int);
    descriptor: (III)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.joni.Matcher this
        start local 1 // int start
        start local 2 // int range
        start local 3 // int option
         0: .line 301
            aload 0 /* this */
            iload 1 /* start */
            iload 2 /* range */
            iload 3 /* option */
            iconst_0
            invokevirtual org.joni.Matcher.searchCommon:(IIIZ)I
         1: ireturn
         2: .line 302
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
         3: .line 303
            bipush -2
            ireturn
        end local 3 // int option
        end local 2 // int range
        end local 1 // int start
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/joni/Matcher;
            0    4     1   start  I
            0    4     2   range  I
            0    4     3  option  I
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.InterruptedException
    MethodParameters:
        Name  Flags
      start   
      range   
      option  

  public final int searchInterruptible(int, int, int);
    descriptor: (III)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.joni.Matcher this
        start local 1 // int start
        start local 2 // int range
        start local 3 // int option
         0: .line 308
            aload 0 /* this */
            iload 1 /* start */
            iload 2 /* range */
            iload 3 /* option */
            iconst_1
            invokevirtual org.joni.Matcher.searchCommon:(IIIZ)I
            ireturn
        end local 3 // int option
        end local 2 // int range
        end local 1 // int start
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/joni/Matcher;
            0    1     1   start  I
            0    1     2   range  I
            0    1     3  option  I
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
        Name  Flags
      start   
      range   
      option  

  private final int searchCommon(int, int, int, boolean);
    descriptor: (IIIZ)I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // org.joni.Matcher this
        start local 1 // int start
        start local 2 // int range
        start local 3 // int option
        start local 4 // boolean interrupt
         0: .line 313
            iload 1 /* start */
            istore 7 /* origStart */
        start local 7 // int origStart
         1: .line 314
            iload 2 /* range */
            istore 8 /* origRange */
        start local 8 // int origRange
         2: .line 318
            iload 1 /* start */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            if_icmpgt 3
            iload 1 /* start */
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            if_icmpge 4
      StackMap locals: org.joni.Matcher int int int int top top int int
      StackMap stack:
         3: iconst_m1
            ireturn
         4: .line 321
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchor:I
            ifeq 40
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            if_icmpge 40
         5: .line 324
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchor:I
            iconst_4
            iand
            ifeq 11
         6: .line 327
            iload 2 /* range */
            iload 1 /* start */
            if_icmple 9
         7: .line 328
            iload 1 /* start */
            iconst_1
            iadd
            istore 2 /* range */
         8: .line 329
            goto 48
         9: .line 330
      StackMap locals:
      StackMap stack:
            iload 1 /* start */
            istore 2 /* range */
        10: .line 332
            goto 48
      StackMap locals:
      StackMap stack:
        11: aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchor:I
            iconst_1
            iand
            ifeq 21
        12: .line 334
            iload 2 /* range */
            iload 1 /* start */
            if_icmple 16
        13: .line 335
            iload 1 /* start */
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            if_icmpeq 14
            iconst_m1
            ireturn
        14: .line 336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            iconst_1
            iadd
            istore 2 /* range */
        15: .line 337
            goto 48
        16: .line 338
      StackMap locals:
      StackMap stack:
            iload 2 /* range */
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            if_icmpgt 20
        17: .line 339
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            istore 1 /* start */
        18: .line 340
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            istore 2 /* range */
        19: .line 341
            goto 48
        20: .line 342
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        21: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchor:I
            bipush 8
            iand
            ifeq 25
        22: .line 346
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            dup
            istore 10 /* maxSemiEnd */
        start local 10 // int maxSemiEnd
        23: istore 9 /* minSemiEnd */
        start local 9 // int minSemiEnd
        24: .line 348
            aload 0 /* this */
            iload 1 /* start */
            iload 2 /* range */
            iload 9 /* minSemiEnd */
            iload 10 /* maxSemiEnd */
            invokevirtual org.joni.Matcher.endBuf:(IIII)Z
            ifeq 48
            iconst_m1
            ireturn
        end local 10 // int maxSemiEnd
        end local 9 // int minSemiEnd
        25: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchor:I
            bipush 16
            iand
            ifeq 34
        26: .line 350
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            iconst_1
            invokevirtual org.jcodings.Encoding.stepBack:([BIIII)I
            istore 11 /* preEnd */
        start local 11 // int preEnd
        27: .line 351
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            istore 10 /* maxSemiEnd */
        start local 10 // int maxSemiEnd
        28: .line 352
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            iload 11 /* preEnd */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.isNewLine:([BII)Z
            ifeq 32
        29: .line 353
            iload 11 /* preEnd */
            istore 9 /* minSemiEnd */
        start local 9 // int minSemiEnd
        30: .line 360
            iload 9 /* minSemiEnd */
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            if_icmple 48
            iload 1 /* start */
            iload 9 /* minSemiEnd */
            if_icmpgt 48
        31: .line 362
            aload 0 /* this */
            iload 1 /* start */
            iload 2 /* range */
            iload 9 /* minSemiEnd */
            iload 10 /* maxSemiEnd */
            invokevirtual org.joni.Matcher.endBuf:(IIII)Z
            ifeq 48
            iconst_m1
            ireturn
        end local 9 // int minSemiEnd
        32: .line 365
      StackMap locals: org.joni.Matcher int int int int top top int int top int int
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            istore 9 /* minSemiEnd */
        start local 9 // int minSemiEnd
        33: .line 367
            aload 0 /* this */
            iload 1 /* start */
            iload 2 /* range */
            iload 9 /* minSemiEnd */
            iload 10 /* maxSemiEnd */
            invokevirtual org.joni.Matcher.endBuf:(IIII)Z
            ifeq 48
            iconst_m1
            ireturn
        end local 11 // int preEnd
        end local 10 // int maxSemiEnd
        end local 9 // int minSemiEnd
        34: .line 369
      StackMap locals: org.joni.Matcher int int int int top top int int
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchor:I
            ldc 32768
            iand
            ifeq 48
        35: .line 371
            iload 2 /* range */
            iload 1 /* start */
            if_icmple 38
        36: .line 372
            iload 1 /* start */
            iconst_1
            iadd
            istore 2 /* range */
        37: .line 373
            goto 48
        38: .line 374
      StackMap locals:
      StackMap stack:
            iload 1 /* start */
            istore 2 /* range */
        39: .line 378
            goto 48
      StackMap locals:
      StackMap stack:
        40: aload 0 /* this */
            getfield org.joni.Matcher.str:I
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            if_icmpne 48
        41: .line 382
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.thresholdLength:I
            ifne 47
        42: .line 383
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            dup
            istore 1 /* start */
            istore 5 /* s */
        start local 5 // int s
        43: .line 384
            iconst_m1
            istore 6 /* prev */
        start local 6 // int prev
        44: .line 385
            aload 0 /* this */
            iload 3 /* option */
            iload 1 /* start */
            invokevirtual org.joni.Matcher.msaInit:(II)V
        45: .line 389
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            iload 5 /* s */
            iload 6 /* prev */
            iload 4 /* interrupt */
            invokevirtual org.joni.Matcher.matchCheck:(IIIZ)Z
            ifeq 46
            aload 0 /* this */
            iload 5 /* s */
            invokevirtual org.joni.Matcher.match:(I)I
            ireturn
        46: .line 390
      StackMap locals: org.joni.Matcher int int int int int int int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.joni.Matcher.mismatch:()I
            ireturn
        end local 6 // int prev
        end local 5 // int s
        47: .line 392
      StackMap locals: org.joni.Matcher int int int int top top int int
      StackMap stack:
            iconst_m1
            ireturn
        48: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* option */
            iload 7 /* origStart */
            invokevirtual org.joni.Matcher.msaInit:(II)V
        49: .line 403
            iload 1 /* start */
            istore 5 /* s */
        start local 5 // int s
        50: .line 404
            iload 2 /* range */
            iload 1 /* start */
            if_icmple 97
        51: .line 405
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            if_icmple 54
        52: .line 406
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 6 /* prev */
        start local 6 // int prev
        53: .line 407
            goto 55
        end local 6 // int prev
        54: .line 408
      StackMap locals: org.joni.Matcher int int int int int top int int
      StackMap stack:
            iconst_0
            istore 6 /* prev */
        start local 6 // int prev
        55: .line 411
      StackMap locals: org.joni.Matcher int int int int int int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.forward:Lorg/joni/Search$Forward;
            ifnull 90
        56: .line 412
            iload 2 /* range */
            istore 9 /* schRange */
        start local 9 // int schRange
        57: .line 413
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            ifeq 63
        58: .line 414
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            ldc 2147483647
            if_icmpne 61
        59: .line 415
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            istore 9 /* schRange */
        60: .line 416
            goto 63
        61: .line 417
      StackMap locals: int
      StackMap stack:
            iload 9 /* schRange */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            iadd
            istore 9 /* schRange */
        62: .line 418
            iload 9 /* schRange */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            if_icmple 63
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            istore 9 /* schRange */
        63: .line 421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            iload 1 /* start */
            isub
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.thresholdLength:I
            if_icmpge 64
            aload 0 /* this */
            invokevirtual org.joni.Matcher.mismatch:()I
            ireturn
        64: .line 423
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            ldc 2147483647
            if_icmpeq 77
        65: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            iload 5 /* s */
            iload 9 /* schRange */
            aload 0 /* this */
            invokevirtual org.joni.Matcher.forwardSearchRange:([BIIIILorg/jcodings/IntHolder;)Z
            ifne 66
            aload 0 /* this */
            invokevirtual org.joni.Matcher.mismatch:()I
            ireturn
        66: .line 426
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.low:I
            if_icmpge 73
        67: .line 427
            aload 0 /* this */
            getfield org.joni.Matcher.low:I
            istore 5 /* s */
        68: .line 428
            aload 0 /* this */
            getfield org.joni.Matcher.value:I
            istore 6 /* prev */
        69: .line 430
            goto 73
        70: .line 431
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 8 /* origRange */
            iload 5 /* s */
            iload 6 /* prev */
            iload 4 /* interrupt */
            invokevirtual org.joni.Matcher.matchCheck:(IIIZ)Z
            ifeq 71
            aload 0 /* this */
            iload 5 /* s */
            invokevirtual org.joni.Matcher.match:(I)I
            ireturn
        71: .line 432
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            istore 6 /* prev */
        72: .line 433
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.length:([BII)I
            iadd
            istore 5 /* s */
        73: .line 430
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.high:I
            if_icmple 70
        74: .line 435
            iload 5 /* s */
            iload 2 /* range */
        75: .line 424
            if_icmplt 65
        76: .line 436
            aload 0 /* this */
            invokevirtual org.joni.Matcher.mismatch:()I
            ireturn
        77: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            iload 5 /* s */
            iload 9 /* schRange */
            aconst_null
            invokevirtual org.joni.Matcher.forwardSearchRange:([BIIIILorg/jcodings/IntHolder;)Z
            ifne 78
            aload 0 /* this */
            invokevirtual org.joni.Matcher.mismatch:()I
            ireturn
        78: .line 441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchor:I
            sipush 16384
            iand
            ifeq 90
        79: .line 443
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 8 /* origRange */
            iload 5 /* s */
            iload 6 /* prev */
            iload 4 /* interrupt */
            invokevirtual org.joni.Matcher.matchCheck:(IIIZ)Z
            ifeq 80
            aload 0 /* this */
            iload 5 /* s */
            invokevirtual org.joni.Matcher.match:(I)I
            ireturn
        80: .line 444
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            istore 6 /* prev */
        81: .line 445
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.length:([BII)I
            iadd
            istore 5 /* s */
        82: .line 447
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchor:I
            sipush 6144
            iand
            ifne 87
        83: .line 448
            goto 86
        84: .line 449
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            istore 6 /* prev */
        85: .line 450
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.length:([BII)I
            iadd
            istore 5 /* s */
        86: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            iload 6 /* prev */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.isNewLine:([BII)Z
            ifne 87
            iload 5 /* s */
            iload 2 /* range */
            if_icmplt 84
        87: .line 453
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            iload 2 /* range */
        88: .line 442
            if_icmplt 79
        89: .line 454
            aload 0 /* this */
            invokevirtual org.joni.Matcher.mismatch:()I
            ireturn
        end local 9 // int schRange
        90: .line 460
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 8 /* origRange */
            iload 5 /* s */
            iload 6 /* prev */
            iload 4 /* interrupt */
            invokevirtual org.joni.Matcher.matchCheck:(IIIZ)Z
            ifeq 91
            aload 0 /* this */
            iload 5 /* s */
            invokevirtual org.joni.Matcher.match:(I)I
            ireturn
        91: .line 461
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            istore 6 /* prev */
        92: .line 462
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.length:([BII)I
            iadd
            istore 5 /* s */
        93: .line 463
            iload 5 /* s */
            iload 2 /* range */
        94: .line 459
            if_icmplt 90
        95: .line 465
            iload 5 /* s */
            iload 2 /* range */
            if_icmpne 132
        96: .line 466
            aload 0 /* this */
            iload 8 /* origRange */
            iload 5 /* s */
            iload 6 /* prev */
            iload 4 /* interrupt */
            invokevirtual org.joni.Matcher.matchCheck:(IIIZ)Z
            ifeq 132
            aload 0 /* this */
            iload 5 /* s */
            invokevirtual org.joni.Matcher.match:(I)I
            ireturn
        end local 6 // int prev
        97: .line 475
      StackMap locals: org.joni.Matcher int int int int int top int int
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.backward:Lorg/joni/Search$Backward;
            ifnull 127
        98: .line 477
            iload 2 /* range */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            if_icmpge 101
        99: .line 478
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            iload 2 /* range */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.leftAdjustCharHead:([BIII)I
            istore 9 /* adjrange */
        start local 9 // int adjrange
       100: .line 479
            goto 102
        end local 9 // int adjrange
       101: .line 480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            istore 9 /* adjrange */
        start local 9 // int adjrange
       102: .line 482
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            ldc 2147483647
            if_icmpeq 115
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            iload 2 /* range */
            isub
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.thresholdLength:I
            if_icmplt 115
       103: .line 484
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            iadd
            istore 10 /* schStart */
        start local 10 // int schStart
       104: .line 485
            iload 10 /* schStart */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            if_icmple 105
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            istore 10 /* schStart */
       105: .line 486
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            iload 10 /* schStart */
            iload 2 /* range */
            iload 9 /* adjrange */
            invokevirtual org.joni.Matcher.backwardSearchRange:([BIIIII)Z
            ifne 106
            aload 0 /* this */
            invokevirtual org.joni.Matcher.mismatch:()I
            ireturn
       106: .line 487
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.high:I
            if_icmple 111
            aload 0 /* this */
            getfield org.joni.Matcher.high:I
            istore 5 /* s */
       107: .line 488
            goto 111
       108: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 6 /* prev */
        start local 6 // int prev
       109: .line 490
            aload 0 /* this */
            iload 7 /* origStart */
            iload 5 /* s */
            iload 6 /* prev */
            iload 4 /* interrupt */
            invokevirtual org.joni.Matcher.matchCheck:(IIIZ)Z
            ifeq 110
            aload 0 /* this */
            iload 5 /* s */
            invokevirtual org.joni.Matcher.match:(I)I
            ireturn
       110: .line 491
      StackMap locals: org.joni.Matcher int int int int int int int int int int
      StackMap stack:
            iload 6 /* prev */
            istore 5 /* s */
        end local 6 // int prev
       111: .line 488
      StackMap locals: org.joni.Matcher int int int int int top int int int int
      StackMap stack:
            iload 5 /* s */
            iconst_m1
            if_icmpeq 112
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.low:I
            if_icmpge 108
        end local 10 // int schStart
       112: .line 493
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            iload 2 /* range */
       113: .line 483
            if_icmpge 103
       114: .line 494
            aload 0 /* this */
            invokevirtual org.joni.Matcher.mismatch:()I
            ireturn
       115: .line 496
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            iload 2 /* range */
            isub
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.thresholdLength:I
            if_icmpge 116
            aload 0 /* this */
            invokevirtual org.joni.Matcher.mismatch:()I
            ireturn
       116: .line 498
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            istore 10 /* schStart */
        start local 10 // int schStart
       117: .line 499
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            ifeq 126
       118: .line 500
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            ldc 2147483647
            if_icmpne 121
       119: .line 501
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            istore 10 /* schStart */
       120: .line 502
            goto 126
       121: .line 503
      StackMap locals: int
      StackMap stack:
            iload 10 /* schStart */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.dMax:I
            iadd
            istore 10 /* schStart */
       122: .line 504
            iload 10 /* schStart */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            if_icmple 125
       123: .line 505
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            istore 10 /* schStart */
       124: .line 506
            goto 126
       125: .line 507
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            iload 1 /* start */
            iload 10 /* schStart */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.leftAdjustCharHead:([BIII)I
            istore 10 /* schStart */
       126: .line 511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            iload 10 /* schStart */
            iload 2 /* range */
            iload 9 /* adjrange */
            invokevirtual org.joni.Matcher.backwardSearchRange:([BIIIII)Z
            ifne 127
            aload 0 /* this */
            invokevirtual org.joni.Matcher.mismatch:()I
            ireturn
        end local 10 // int schStart
        end local 9 // int adjrange
       127: .line 516
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            iload 5 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 6 /* prev */
        start local 6 // int prev
       128: .line 517
            aload 0 /* this */
            iload 7 /* origStart */
            iload 5 /* s */
            iload 6 /* prev */
            iload 4 /* interrupt */
            invokevirtual org.joni.Matcher.matchCheck:(IIIZ)Z
            ifeq 129
            aload 0 /* this */
            iload 5 /* s */
            invokevirtual org.joni.Matcher.match:(I)I
            ireturn
       129: .line 518
      StackMap locals: org.joni.Matcher int int int int int int int int
      StackMap stack:
            iload 6 /* prev */
            istore 5 /* s */
       130: .line 519
            iload 5 /* s */
            iload 2 /* range */
       131: .line 515
            if_icmpge 127
       132: .line 522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.joni.Matcher.mismatch:()I
            ireturn
        end local 8 // int origRange
        end local 7 // int origStart
        end local 6 // int prev
        end local 5 // int s
        end local 4 // boolean interrupt
        end local 3 // int option
        end local 2 // int range
        end local 1 // int start
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0  133     0        this  Lorg/joni/Matcher;
            0  133     1       start  I
            0  133     2       range  I
            0  133     3      option  I
            0  133     4   interrupt  Z
           43   47     5           s  I
           50  133     5           s  I
           44   47     6        prev  I
           53   54     6        prev  I
           55   97     6        prev  I
          109  111     6        prev  I
          128  133     6        prev  I
            1  133     7   origStart  I
            2  133     8   origRange  I
           24   25     9  minSemiEnd  I
           30   32     9  minSemiEnd  I
           33   34     9  minSemiEnd  I
           23   25    10  maxSemiEnd  I
           28   34    10  maxSemiEnd  I
           27   34    11      preEnd  I
           57   90     9    schRange  I
          100  101     9    adjrange  I
          102  127     9    adjrange  I
          104  112    10    schStart  I
          117  127    10    schStart  I
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
           Name  Flags
      start      
      range      
      option     
      interrupt  

  private final boolean endBuf(int, int, int, int);
    descriptor: (IIII)Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.joni.Matcher this
        start local 1 // int start
        start local 2 // int range
        start local 3 // int minSemiEnd
        start local 4 // int maxSemiEnd
         0: .line 526
            iload 4 /* maxSemiEnd */
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            isub
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchorDmin:I
            if_icmpge 1
            iconst_1
            ireturn
         1: .line 528
      StackMap locals:
      StackMap stack:
            iload 2 /* range */
            iload 1 /* start */
            if_icmple 11
         2: .line 529
            iload 3 /* minSemiEnd */
            iload 1 /* start */
            isub
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchorDmax:I
            if_icmple 8
         3: .line 530
            iload 3 /* minSemiEnd */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchorDmax:I
            isub
            istore 1 /* start */
         4: .line 531
            iload 1 /* start */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            if_icmpge 7
         5: .line 532
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            iload 1 /* start */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.rightAdjustCharHead:([BIII)I
            istore 1 /* start */
         6: .line 533
            goto 8
         7: .line 534
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 1 /* start */
         8: .line 537
      StackMap locals:
      StackMap stack:
            iload 4 /* maxSemiEnd */
            iload 2 /* range */
            iconst_1
            isub
            isub
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchorDmin:I
            if_icmpge 10
         9: .line 538
            iload 4 /* maxSemiEnd */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchorDmin:I
            isub
            iconst_1
            iadd
            istore 2 /* range */
        10: .line 540
      StackMap locals:
      StackMap stack:
            iload 1 /* start */
            iload 2 /* range */
            if_icmplt 17
            iconst_1
            ireturn
        11: .line 542
      StackMap locals:
      StackMap stack:
            iload 3 /* minSemiEnd */
            iload 2 /* range */
            isub
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchorDmax:I
            if_icmple 13
        12: .line 543
            iload 3 /* minSemiEnd */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchorDmax:I
            isub
            istore 2 /* range */
        13: .line 545
      StackMap locals:
      StackMap stack:
            iload 4 /* maxSemiEnd */
            iload 1 /* start */
            isub
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchorDmin:I
            if_icmpge 16
        14: .line 546
            iload 4 /* maxSemiEnd */
            aload 0 /* this */
            getfield org.joni.Matcher.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.anchorDmin:I
            isub
            istore 1 /* start */
        15: .line 547
            aload 0 /* this */
            getfield org.joni.Matcher.enc:Lorg/jcodings/Encoding;
            aload 0 /* this */
            getfield org.joni.Matcher.bytes:[B
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            iload 1 /* start */
            aload 0 /* this */
            getfield org.joni.Matcher.end:I
            invokevirtual org.jcodings.Encoding.leftAdjustCharHead:([BIII)I
            istore 1 /* start */
        16: .line 549
      StackMap locals:
      StackMap stack:
            iload 2 /* range */
            iload 1 /* start */
            if_icmple 17
            iconst_1
            ireturn
        17: .line 551
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // int maxSemiEnd
        end local 3 // int minSemiEnd
        end local 2 // int range
        end local 1 // int start
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lorg/joni/Matcher;
            0   18     1       start  I
            0   18     2       range  I
            0   18     3  minSemiEnd  I
            0   18     4  maxSemiEnd  I
    MethodParameters:
            Name  Flags
      start       
      range       
      minSemiEnd  
      maxSemiEnd  

  private final int match(int);
    descriptor: (I)I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.joni.Matcher this
        start local 1 // int s
         0: .line 555
            iload 1 /* s */
            aload 0 /* this */
            getfield org.joni.Matcher.str:I
            isub
            ireturn
        end local 1 // int s
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joni/Matcher;
            0    1     1     s  I
    MethodParameters:
      Name  Flags
      s     

  private final int mismatch();
    descriptor: ()I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.joni.Matcher this
         0: .line 560
            aload 0 /* this */
            getfield org.joni.Matcher.msaBestLen:I
            iflt 3
         1: .line 561
            aload 0 /* this */
            getfield org.joni.Matcher.msaBestS:I
            istore 1 /* s */
        start local 1 // int s
         2: .line 562
            aload 0 /* this */
            iload 1 /* s */
            invokevirtual org.joni.Matcher.match:(I)I
            ireturn
        end local 1 // int s
         3: .line 566
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/joni/Matcher;
            2    3     1     s  I

  protected final byte[] icbuf();
    descriptor: ()[B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.joni.Matcher this
         0: .line 572
            aload 0 /* this */
            getfield org.joni.Matcher.icbuf:[B
            ifnonnull 1
            aload 0 /* this */
            bipush 18
            newarray 8
            dup_x1
            putfield org.joni.Matcher.icbuf:[B
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.joni.Matcher.icbuf:[B
      StackMap locals:
      StackMap stack: byte[]
         2: areturn
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/joni/Matcher;

  static boolean isMbcAsciiWord(org.jcodings.Encoding, byte[], int, int);
    descriptor: (Lorg/jcodings/Encoding;[BII)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jcodings.Encoding enc
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int end
         0: .line 576
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            aload 0 /* enc */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 3 /* end */
            invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
            bipush 12
            invokevirtual org.jcodings.specific.ASCIIEncoding.isCodeCType:(II)Z
            ireturn
        end local 3 // int end
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.jcodings.Encoding enc
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0    enc  Lorg/jcodings/Encoding;
            0    1     1  bytes  [B
            0    1     2      p  I
            0    1     3    end  I
    MethodParameters:
       Name  Flags
      enc    
      bytes  
      p      
      end    

  private final void debugForwardSearchRange(int, int, int, int);
    descriptor: (IIII)V
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=0, locals=5, args_size=5
        start local 0 // org.joni.Matcher this
        start local 1 // int str
        start local 2 // int end
        start local 3 // int s
        start local 4 // int range
         0: .line 587
            return
        end local 4 // int range
        end local 3 // int s
        end local 2 // int end
        end local 1 // int str
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/joni/Matcher;
            0    1     1    str  I
            0    1     2    end  I
            0    1     3      s  I
            0    1     4  range  I
    MethodParameters:
       Name  Flags
      str    
      end    
      s      
      range  

  private final void debugForwardSearchRangeSuccess(int, int, int);
    descriptor: (III)V
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=0, locals=4, args_size=4
        start local 0 // org.joni.Matcher this
        start local 1 // int str
        start local 2 // int low
        start local 3 // int high
         0: .line 597
            return
        end local 3 // int high
        end local 2 // int low
        end local 1 // int str
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joni/Matcher;
            0    1     1   str  I
            0    1     2   low  I
            0    1     3  high  I
    MethodParameters:
      Name  Flags
      str   
      low   
      high  

  private final void debugSearch(int, int, int, int);
    descriptor: (IIII)V
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=0, locals=5, args_size=5
        start local 0 // org.joni.Matcher this
        start local 1 // int str
        start local 2 // int end
        start local 3 // int start
        start local 4 // int range
         0: .line 607
            return
        end local 4 // int range
        end local 3 // int start
        end local 2 // int end
        end local 1 // int str
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/joni/Matcher;
            0    1     1    str  I
            0    1     2    end  I
            0    1     3  start  I
            0    1     4  range  I
    MethodParameters:
       Name  Flags
      str    
      end    
      start  
      range  

  private final void debugBackwardSearchRange(int, int, int);
    descriptor: (III)V
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=0, locals=4, args_size=4
        start local 0 // org.joni.Matcher this
        start local 1 // int str
        start local 2 // int low
        start local 3 // int high
         0: .line 615
            return
        end local 3 // int high
        end local 2 // int low
        end local 1 // int str
        end local 0 // org.joni.Matcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joni/Matcher;
            0    1     1   str  I
            0    1     2   low  I
            0    1     3  high  I
    MethodParameters:
      Name  Flags
      str   
      low   
      high  

  static void debugSearch(java.lang.String, int, int, int);
    descriptor: (Ljava/lang/String;III)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.String name
        start local 1 // int textP
        start local 2 // int textEnd
        start local 3 // int textRange
         0: .line 618
            getstatic org.joni.Config.log:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            aload 0 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": text: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* textP */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", text_end: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* textEnd */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", text_range: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* textRange */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 619
            return
        end local 3 // int textRange
        end local 2 // int textEnd
        end local 1 // int textP
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       name  Ljava/lang/String;
            0    2     1      textP  I
            0    2     2    textEnd  I
            0    2     3  textRange  I
    MethodParameters:
           Name  Flags
      name       
      textP      
      textEnd    
      textRange  
}
SourceFile: "Matcher.java"
InnerClasses:
  abstract Backward = org.joni.Search$Backward of org.joni.Search
  abstract Forward = org.joni.Search$Forward of org.joni.Search