In deinem Fall wäre das btw.:
1.
ls /etc | egrep '^p'
^ --> steht für den Zeilenanfang
p --> steht für ein p
2.
ls /etc | egrep '^.[A-Z]'
^ --> Zeilenanfang
. --> (genau) ein beliebiges Zeichen
[A-Z] - die eckigen Klammern bilden eine sog. "character class". Und die steht für ein einzelnes Zeichen, was all jene Werte annehmen kann, welche du in die eckigen Klammern schreibst. Bsp: [G8a] steht für genau ein Zeichen, was entweder ein großes G, eine 8 oder ein kleines a sein kann. Mit dem - kann man Zeichenbereiche beschreiben. Bsp: [4-7] steht für genau ein Zeichen, was entweder ne 4, ne 5, ne 6 oder ne 7 sein kann.
3.
ls /sbin | egrep '[0-9]'
[0-9] --> eine character class, siehe oben.
Regular Expressions sind nicht nur in der Shell ne mächtige Waffe, sondern auch in allen möglichen Programmiersprachen - lohnt sich!! 🙂