'/^hoge(.*)$/'
のように各行の行頭を検索してgrep的な使い方をしたかったのですが、この場合は/m修飾子を付ける必要があるようです。
PHP: 正規表現パターンに使用可能な修飾子 - Manual
この修飾子を設定すると、「行頭」および「行末」メタ文字は 対象文字列において、文字列の最初と最後に加えて、 各改行の直前と直後にそれぞれマッチします。
付けないと各行の行頭ではなく、文字列の先頭しかヒットしませんでした。
ご注意を。というかドキュメントちゃんと読んだ方が良いっすね…。