You would need to denote an escaping char, and then preg_split() on `[^<esc-char>]x`. As an alternative, we could hash all args? From what I can tell, we don't have logic actually relying on the arg info being in the filename. `Image->deleteFormattedImages()` just needs to know the filename is related to a "master file", and we can easily retain this relationship. 

```php
$generators = array('SetWidth' => array(200), 'Transparent' => array(0.8));
$cacheParts = array();
foreach($generators as $generator => $args) $cacheParts[] = md5($generator . implode('', $args);
$cacheName = md5(implode('',$cacheParts) . '-' . $masterFilename;
```

Sorry for the piece-by-piece ideas from me, I made the mistake of not really focusing on the problem set as a whole but rather just responding to immediate questions.