{"record":{"id":"5ffc46af13aa5f3d","repo":"rouge-ruby/rouge","slug":"regex-re-inspect-matches-empty-string-but-has","errorCode":null,"errorMessage":"regex #{@re.inspect} matches empty string, but has no predicate!","messagePattern":"regex #(.+?) matches empty string, but has no predicate!","errorType":"exception","errorClass":"InvalidRegex","httpStatus":null,"severity":"error","filePath":"lib/rouge/regex_lexer.rb","lineNumber":126,"sourceCode":"            @stack.push(state)\n          end\n        when Array\n          # [jneen] TODO: deprecate this.\n          proc do |stream|\n            puts \"    yielding: #{tok.qualname}, #{stream[0].inspect}\" if @debug\n            @output_stream.call(tok, stream[0])\n            for i_next_state in next_state do\n              next @stack.pop if i_next_state == :pop!\n              next @stack.push(@stack.last) if i_next_state == :push\n\n              state = @states[i_next_state] || self.class.get_state(i_next_state)\n              puts \"    pushing :#{state.name}\" if @debug\n              @stack.push(state)\n            end\n          end\n        when nil\n          # cannot use an empty-matching regexp with no predicate\n          raise InvalidRegex.new(re) if matches_empty\n\n          proc do |stream|\n            puts \"    yielding: #{tok.qualname}, #{stream[0].inspect}\" if @debug\n            @output_stream.call(tok, stream[0])\n          end\n        end\n      end\n    end\n\n    # a State is a named set of rules that can be tested for or\n    # mixed in.\n    #\n    # @see RegexLexer.state\n    class State\n      attr_reader :name, :rules\n      def initialize(name, rules)\n        @name = name\n        @rules = rules","sourceCodeStart":108,"sourceCodeEnd":144,"githubUrl":"https://github.com/rouge-ruby/rouge/blob/bd7dad7b0939c556e582a0370686f6fc022c8af5/lib/rouge/regex_lexer.rb#L108-L144","documentation":"Error \"regex #{@re.inspect} matches empty string, but has no predicate!\" thrown in rouge-ruby/rouge.","triggerScenarios":"Thrown at lib/rouge/regex_lexer.rb:126 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"bd7dad7b0939c556e582a0370686f6fc022c8af5","analyzedAt":"2026-08-23T11:34:50.713Z","schemaVersion":2},"datasetVersion":"2026-08-23T16:17:53.355Z"}