┌───┐ ┌─────┐ │Bob│ │Alice│ └─┬─┘ └──┬──┘ │ replace, based on space delimiter - XXX MMMXXX │ │───────────────────────────────────────────────────────>│ │ │ │ remain, based on missing delimiter - XXXMMMXXX │ │───────────────────────────────────────────────────────>│ │ │ │replaced based on "call_user_func" function - XXXMMMXXX │ │───────────────────────────────────────────────────────>│ │ │ │ replaced based on "eval" function - XXX0XXX │ │───────────────────────────────────────────────────────>│ │ │ │ │ │ ╔════╗ │ ═══════╪═════════════════════════╣ ===╠═════════════════════════╪════════ │ ╚════╝ │ │ │ │ should be replaced (space delimiter) - XXX │ │ XXX │ │───────────────────────────────────────────────────────>│ │ │ │ should be not replaced (if same impl. like MMM) - XXX │ │ XXX │ │───────────────────────────────────────────────────────>│ │ │ │ │ │ ╔═══╗ │ ═══════╪══════════════════════════╣ ==╠═════════════════════════╪════════ │ ╚═══╝ │ │ │ │ replaced based on var - XXXMMMXXX │ │───────────────────────────────────────────────────────>│ │ │ │ replaced based on var - $XXX │ │ XXX │ │───────────────────────────────────────────────────────>│ ┌─┴─┐ ┌──┴──┐ │Bob│ │Alice│ └───┘ └─────┘