The greedy `.*` captures with `re.DOTALL` cause `findall()` to merge multiple tool calls into a single match — silently dropping all but the last tool call. Switching to `.*?` (non-greedy) fixes extraction when models return multiple tool calls in one response. Adds test coverage for the DeepSeek V3 parser including a multi-tool call regression test. Co-authored-by: Himess <semihcvlk53@gmail.com>