A system for parsing complex data, the system comprising: a memory device (106, 108) configured to store a set of instructions; and at least one processor configured to execute the set of instructions to perform the following operations: determine at least one current input string inputted into a parsing pipeline within a parser, the parsing pipeline including a set of handlers, wherein at least one handler in the set is configured to perform at least one parsing function on strings that match a given expression; provide the current input string to a first handler in the parsing pipeline; determine, by the first handler, that the first handler is configured to parse at least a portion of the current input string; generate, by the first handler, a second string from the portion of the current input string; and provide, by the first handler, the second string as input to a second handler in the parsing pipeline, characterized in that: the second string is provided as regenerative input to the second handler, and the second handler being determined based at least in part on a target handler definition associated with the first handler, the target handler definition referencing the second handler as an argument to at least one parsing function associated with the first handler. a memory device (106, 108) configured to store a set of instructions; and at least one processor configured to execute the set of instructions to perform the following operations: determine at least one current input string inputted into a parsing pipeline within a parser, the parsing pipeline including a set of handlers, wherein at least one handler in the set is configured to perform at least one parsing function on strings that match a given expression; provide the current input string to a first handler in the parsing pipeline; determine, by the first handler, that the first handler is configured to parse at least a portion of the current input string; generate, by the first handler, a second string from the portion of the current input string; and provide, by the first handler, the second string as input to a second handler in the parsing pipeline, characterized in that: the second string is provided as regenerative input to the second handler, and the second handler being determined based at least in part on a target handler definition associated with the first handler, the target handler definition referencing the second handler as an argument to at least one parsing function associated with the first handler. determine at least one current input string inputted into a parsing pipeline within a parser, the parsing pipeline including a set of handlers, wherein at least one handler in the set is configured to perform at least one parsing function on strings that match a given expression; provide the current input string to a first handler in the parsing pipeline; determine, by the first handler, that the first handler is configured to parse at least a portion of the current input string; generate, by the first handler, a second string from the portion of the current input string; and provide, by the first handler, the second string as input to a second handler in the parsing pipeline, characterized in that: the second string is provided as regenerative input to the second handler, and the second handler being determined based at least in part on a target handler definition associated with the first handler, the target handler definition referencing the second handler as an argument to at least one parsing function associated with the first handler. the second string is provided as regenerative input to the second handler, and the second handler being determined based at least in part on a target handler definition associated with the first handler, the target handler definition referencing the second handler as an argument to at least one parsing function associated with the first handler.